【问题标题】:How to add mongodb server to dotnet project installer如何将 mongodb 服务器添加到 dotnet 项目安装程序
【发布时间】:2022-12-10 07:23:00
【问题描述】:

我通过运行 dotnet publish -r osx-arm64 为我的 dotnet 项目创建了一个安装程序。但是,当我尝试运行可执行文件时,它看起来确实在http://localhost:5000 上启动了服务器。

这是日志:

Starting C-Store SCP server on port 11112
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: https://localhost:5001
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]

但是,由于我的 GET 端点从本地 mongo 服务器获取数据,因此当我尝试运行 GET 端点 http://localhost:5000/api/getItems 时,它会抛出一个错误,如下所示

Microsoft.AspNetCore.Server.Kestrel[13]
  Connection id "XXXXXXX", Request id "XXXXX": An unhandled exception was thrown by the application.
  System.ArgumentNullException: Value cannot be null. (Parameter 'connectionString')
     at MongoDB.Driver.Core.Misc.Ensure.IsNotNull[T](T value, String paramName)
     at MongoDB.Driver.Core.Configuration.ConnectionString..ctor(String connectionString, Boolean isInternalRepresentation, IDnsResolver dnsResolver)
     at MongoDB.Driver.Core.Configuration.ConnectionString..ctor(String connectionString)
     at MongoDB.Driver.MongoUrlBuilder.Parse(String url)
     at MongoDB.Driver.MongoUrlBuilder..ctor(String url)
     at MongoDB.Driver.MongoUrl..ctor(String url)
     at MongoDB.Driver.MongoClientSettings.FromConnectionString(String connectionString)
     at MongoDB.Driver.MongoClient..ctor(String connectionString)

我假设这是因为可执行文件中没有 mongodb 服务器/驱动程序?

我需要一些关于如何在可执行文件中包含 mongodb 服务器的建议,一旦我运行可执行文件,它就会自动启动。我的总体目标是为我的 dotnet 项目创建一个可执行文件,其中包含一个带有它的 mongo 服务器。谢谢!

【问题讨论】:

  • 这是因为连接字符串为空
  • 我的发布文件夹中的 appsettings.json 是:``` { "RouterDatabase": { "ConnectionString": "mongodb://localhost:27017", "DatabaseName": "XXX", "ApiEndpointsCollectionName": "XXX" }, “日志记录”:{“LogLevel”:{“默认”:“信息”,“Microsoft.AspNetCore”:“警告”}},“AllowedHosts”:“*”}```
  • idk,看起来你做错了什么,但错误很明显,只说错过了连接字符串

标签: c# .net mongodb .net-core executable


【解决方案1】:

要将 MongoDB 服务器添加到 .NET 项目安装程序,您需要为您的项目创建一个自定义安装程序,将 MongoDB 服务器作为依赖项包含在内。这个自定义安装程序需要处理 MongoDB 服务器的安装和配置,以及您的项目可能具有的任何其他依赖项。

以下是为具有 MongoDB 服务器依赖项的 .NET 项目创建自定义安装程序时需要遵循的步骤的高级概述:

在 Visual Studio 中创建一个新的安装程序项目。这可以通过从菜单中选择“文件 > 新建 > 项目”,然后从可用项目类型列表中选择“设置项目”来完成。

将 MongoDB 服务器安装程序添加到您的项目中。这可以通过从 MongoDB 网站下载 MongoDB 服务器安装程序,然后将其作为文件添加到您的项目来完成。

配置 MongoDB 服务器安装程序以作为项目安装过程的一部分运行。这可以通过右键单击项目中的 MongoDB 服务器安装程序,然后从上下文菜单中选择“属性”来完成。在属性窗口中,您可以将“InstallerClass”属性设置为“True”,以指示安装程序应作为项目安装过程的一部分运行。

配置您的项目可能具有的任何其他依赖项,例如您的项目需要的任何其他库或框架。这些依赖项可以像添加 MongoDB 服务器安装程序一样添加到项目中。

构建安装程序项目以创建项目的最终安装程序包。这可以通过右键单击解决方案资源管理器中的安装程序项目,然后从上下文菜单中选择“构建”来完成。

测试您的安装程序以确保它正确安装和配置 MongoDB 服务器,以及您的项目可能具有的任何其他依赖项。

值得注意的是,为您的项目创建自定义安装程序可能是一个复杂且耗时的过程,因此您可能需要考虑使用现有的安装程序框架或工具来帮助简化该过程。 .NET 项目的一些流行安装程序框架包括 WiX、InstallShield 和 Advanced Installer。

【讨论】:

  • 非常感谢分步指南:将 MongoDB 服务器安装程序配置为作为项目安装过程的一部分运行。这可以通过右键单击项目中的 MongoDB 服务器安装程序,然后从上下文菜单中选择“属性”来完成。我将如何为 mac 执行此操作?
猜你喜欢
  • 2020-03-26
  • 1970-01-01
  • 1970-01-01
  • 2011-02-23
  • 1970-01-01
  • 2015-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多