【发布时间】:2017-03-16 17:48:44
【问题描述】:
我创建了一个带有用户身份验证的简单 ASP.Net Core 应用程序(因此所有实体框架都已预加载到 Web 应用程序模板中)。它使用位于我的appsettings.json 文件中的connectionString 和"data source = {computerName}\\{serverName}" 设置连接到我的数据库。
数据库实例和 Visual Studio 位于同一台机器上。在开发和调试模式下,这可以很好地将数据返回到 web api。当我发布它并尝试从域名访问该站点时,它确实允许我查看不需要数据库连接但需要数据库数据的其余网页返回如下页面:
错误。
处理您的请求时发生错误。 发展模式 切换到开发环境将显示有关所发生错误的更详细信息。不应在部署中启用开发环境 应用程序,因为它可能会导致敏感信息 向最终用户显示的异常。对于本地调试, 开发环境可以通过设置启用 ASPNETCORE_ENVIRONMENT 环境变量到开发,和 重新启动应用程序。
我尝试将 ASPNETCORE_ENVIRONMENT 的环境变量从 Development 更改为 Production,但没有成功。
我尝试在我的project.json 文件中将appsettings.Production.json 添加到publishOptions,即使没有文件appsettings.Production.json,但这并没有帮助。 dotnet publish
在web.config 文件中添加环境变量不起作用Deployment
我需要帮助来获取已发布的 Web api,以便从开发 Visual Studio 设置之外连接到我的 SQL Server 数据库。
我能想到的最后一件事是,我对连接字符串的理解可能不正确。如果 web api 使用连接字符串从服务器端连接到数据库,那么它应该可以正常工作,就像在开发中调用 http://localhost:port# 时一样,因为它们都在同一台机器上。但是,如果数据库字符串需要基于客户端调用,那么它必须包含域名和 IP 地址。
谁能告诉我是哪一个?
唯一想到的其他事情是,在 IIS 管理器中我没有做但需要做的事情。我在那里也看到了连接字符串,但由于连接字符串在应用程序内部,因此不确定这对我们来说是什么。另外,也许我想给应用程序某种授权以与数据库服务器进行通信,即使它们在同一台机器上???
【问题讨论】:
标签: asp.net sql-server iis connectivity