代码之家  ›  专栏  ›  技术社区  ›  Kit

让Hangfire使用MongoDB存储

  •  0
  • Kit  · 技术社区  · 7 年前

    我正在尝试让Hanfire使用MongoDB存储 Hangfire.Mongo NuGet软件包。

    我在做最起码的必要的工作 Configure() :

    app.UseHangfireServer();
    

    这个在 ConfigureServices() :

    services.AddHangfire(
        config => config.UseMongoStorage("mongodb://myhost:27017"),
        "MyDatabase");
    

    我已经验证了数据库存在,并且上面的连接字符串是正确的。

    我有一个例外:

    无法清除资源“迁移”上的锁。系统TimeoutException:在30000ms使用选择服务器后发生超时

    CompositeServerSelector{Selectors=MongoDB.Driver.MongoClient+AreSessionsSupportedServerSelector,LatencyMitingServerSelector{AllowedLatencyRange=00:00.0150000}}。群集状态的客户端视图为{ClusterId:“1”,连接模式:“自动”,类型:“未知”,状态:“断开”,服务器:[{ServerId:{ClusterId:1,端点:” 未指明 /myhost:27017“}”,端点: 未指明 /myhost:27017,状态:“断开”,类型:“未知”,HeartbeatException:“MongoDB。驾驶员MongoConnectionException:

    打开与服务器的连接时发生异常--->系统网插座。SocketException: 目前还不知道这样的主人 在系统中。网Dns。HostResolutionEndHelper(IAsyncResult asyncResult) ... 在篝火旁。蒙戈。分布式锁。MongoDistributedLock。Cleanup()[Hangfire.Mongo.DistributedLock.MongoDistributedLock]

    这个 大胆的 部分原因让我相信,有些信息并没有被设置或丢弃在某个地方,但我并没有做任何不寻常的事情。我检查了防火墙问题,并尝试了本文中的许多想法 answer 对于其他人的类似问题。

    我还尝试将连接字符串更改为所有这些

    • mongodb://myhost:27017/MyDatabase
    • mongodb://myhost:27017/?connect=replicaSet
    • mongodb://myhost:27017/MyDatabase/?connect=replicaSet
    0 回复  |  直到 7 年前
        1
  •  1
  •   Kit    7 年前

    在我的问题中,我没有补充的是,我的应用程序是集装箱化的,就像我机器上的MongoDB一样。

    我在Visual Studio的容器上下文之外的调试中运行应用程序。这意味着它无法看到容器网络,因此无法连接。

    推荐文章