【发布时间】:2023-03-28 16:54:01
【问题描述】:
我是 ASP.NET Core 的新手。我正在尝试开发一个简单的 ASP.NET Core Web API。 API 连接到云中的数据库服务器。我将连接字符串存储在appsettings.json 中,将 API 部署到本地 IIS,然后运行服务。它工作得很好。当我尝试将连接字符串移动到环境变量并再次部署时,Web API 不起作用。浏览器显示“页面无法正常工作。HTTP 错误 500”。
我有几个问题要问:
- 在现实世界的应用程序中,由于用户名和密码很敏感,我们应该在哪里存储连接字符串并部署到服务器?
- 我的 Web API 有什么问题,因为当连接字符串存储在环境变量中时它不起作用?
谢谢
【问题讨论】:
-
您可能希望在服务器上临时启用
UseDeveloperExceptionPage(),以便获得更具体的错误消息。或者,您也许能够从云主机的日志中获取异常详细信息。 -
您使用的是什么云托管服务?这可能会影响存储机密的推荐位置。
-
我在本地机器 IIS 中部署 API。该数据库位于 AWS 中。当连接字符串在 appsetting.json 中而在环境变量中时,它工作正常,它不起作用。
-
啊,我现在看到了关于您的本地主机的信息。对于之前错过的内容,我深表歉意。无论如何,在您的
Startup类中启用UseDeveloperExceptionPage()应该会为您提供更具体的异常消息,这将有助于隔离问题。 -
我尝试在 Visual Studio 中运行 Web API,当点击 Environment.GetEnvironmentVariable("Connection") 时,它给我一条错误消息“值不能为空。参数名称:connectionString'”。什么意思?在我的环境变量中,我将键设置为 ConnectionStrings : Connection.
标签: asp.net-core asp.net-core-webapi