首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EventstoreDb - AppendToStreamAsync“挂起”。为什么?

EventstoreDb - AppendToStreamAsync“挂起”。为什么?
EN

Stack Overflow用户
提问于 2021-06-11 10:42:17
回答 1查看 226关注 0票数 1

我正在尝试实现一个基于事件存储库( eventstore.com )的存储库。Eventstore正在运行我正在粗略地跟踪这个视频:https://www.youtube.com/watch?v=Sopi-gI5qKU

现在,我给AppendToStreamAsync的电话挂了。我不明白为什么,,我做错什么了?

码头工人:

代码语言:javascript
复制
[ 1,12,10:25:43.886,INF] Connection '"external-normal"""' ["172.18.0.1:49020", {508e83cf-f221-4627-84a0-7c32265ee51d}] closed: Success.

[ 1,58,10:25:43.886,DBG] Persistent subscription lost connection from "172.18.0.1:49020"

[ 1,58,10:25:44.083,INF] External TCP connection accepted: [Normal, "172.18.0.1:49024", L"172.18.0.3:1113", {9b21e221-ea26-43a0-889b-a01f8ee14929}].

[ 1,58,10:25:45.254,INF] ES "TcpConnection" closed [10:25:45.254: N"172.18.0.1:49024", L"172.18.0.3:1113", {9b21e221-ea26-43a0-889b-a01f8ee14929}]:Received bytes: 153, Sent bytes: 0

[ 1,58,10:25:45.254,INF] ES "TcpConnection" closed [10:25:45.254: N"172.18.0.1:49024", L"172.18.0.3:1113", {9b21e221-ea26-43a0-889b-a01f8ee14929}]:Send calls: 0, callbacks: 0

[ 1,58,10:25:45.254,INF] ES "TcpConnection" closed [10:25:45.254: N"172.18.0.1:49024", L"172.18.0.3:1113", {9b21e221-ea26-43a0-889b-a01f8ee14929}]:Receive calls: 2, callbacks: 2

[ 1,58,10:25:45.254,INF] ES "TcpConnection" closed [10:25:45.254: N"172.18.0.1:49024", L"172.18.0.3:1113", {9b21e221-ea26-43a0-889b-a01f8ee14929}]:Close reason: [Success] "Socket closed"

[ 1,58,10:25:45.255,INF] Connection '"external-normal"""' ["172.18.0.1:49024", {9b21e221-ea26-43a0-889b-a01f8ee14929}] closed: Success.

[ 1,58,10:25:45.255,DBG] Persistent subscription lost connection from "172.18.0.1:49024"

https://github.com/AndersJuul/GameHall/blob/main/GameHall.SharedKernel.Tests/IntegrationTests/DataStorage/EventStoreRepositoryTests.cs

代码语言:javascript
复制
[Fact(Timeout = 20000)]
public async Task ThatStoredEventsCanBeRehydrated()
{
    var settings = ConnectionSettings.Create()
        .KeepReconnecting()
        .SetGossipTimeout(TimeSpan.FromMilliseconds(500))
        .SetGossipSeedEndPoints(
            new IPEndPoint(IPAddress.Loopback, 2113)
        )
        .SetDefaultUserCredentials(new UserCredentials("admin", "changeit"));
    var connection = EventStoreConnection.Create(settings, new IPEndPoint(IPAddress.Loopback, 1113));
    await connection.ConnectAsync();

    var aggregateId = Guid.NewGuid();
    var list = new List<IEvent>()
    {
        new AccountCreatedEvent(aggregateId, "Eric"),
        new FundsDepositedEvent(aggregateId, 150),
        new FundsDepositedEvent(aggregateId, 100),
        new FundsWithdrawnEvent(aggregateId, 25),
    };

    foreach (var ev in list)
    {
        var json = JsonConvert.SerializeObject(ev,
            new JsonSerializerSettings {TypeNameHandling = TypeNameHandling.None});
        var payload = Encoding.UTF8.GetBytes(json);
        var eventStoreDataType = new EventData(Guid.NewGuid(), ev.GetType().Name, true, payload, null);
        await connection.AppendToStreamAsync(Infrastructure.DataStorage.EventStore.StreamId(aggregateId),
            ExpectedVersion.Any, eventStoreDataType);
    }
EN

回答 1

Stack Overflow用户

发布于 2021-06-11 13:49:19

虽然您在不安全模式下运行ESDB,但默认情况下,客户端试图通过TCP连接TLS,但失败。

您只需使用这一行进行连接,它就能工作:

代码语言:javascript
复制
var connection = 
    EventStoreConnection.Create(
        "ConnectTo=tcp://localhost:1113; UseSslConnection=false;"
    );

请记住,TCP协议是遗留的,并将在某一时刻被逐步淘汰。我强烈建议只使用gRPC客户机。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67935582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档