Edw*_*ard 10 sql-server asp.net iis connectivity
我使用用户身份验证创建了一个简单的ASP.Net Core应用程序(因此所有Entity Framework都已预先加载到Web应用程序模板中).它通过设置连接到我的数据库,该数据库connectionString
位于我的appsettings.json
文件中"data source = {computerName}\\{serverName}"
.
数据库实例和Visual Studio位于同一台计算机上.在开发和调试模式下,这可以很好地将数据返回到web api.当我发布它并尝试从域名转到该站点时,它允许我查看不需要数据库连接的网页,但其余需要数据库的数据会返回如下页面:
错误.
处理您的请求时发生错误.开发模式交换到开发环境将显示有关发生的错误的更详细信息.不应在已部署的应用程序中启用开发环境,因为它可能导致向最终用户显示异常的敏感信息.对于本地调试,可以通过将ASPNETCORE_ENVIRONMENT环境变量设置为Development并重新启动应用程序来启用开发环境.
我试图将环境变量ASPNETCORE_ENVIRONMENT
从开发变为生产,但没有成功.
我曾尝试添加appsettings.Production.json
到publishOptions
我的project.json
文件,即使没有文件appsettings.Production.json
,这并没有帮助.dotnet发布
中添加环境现状变量web.config
文件没有工作部署
我需要帮助将已发布的web api从开发Visual Studio设置外部连接到我的SQL Server数据库.
我能想到的最后一件事是,我对连接字符串的理解可能不正确.如果web api使用连接字符串从服务器端连接到数据库,那么它应该像在开发调用时那样工作,http://localhost:port#
因为它全部在同一台机器上.但是,如果数据库字符串需要基于客户端调用,则必须使用域名和IP地址.谁能告诉我它是哪一个?
我想到的唯一的另一件事是,我在IIS管理器中有一些我没有做的事情.我也看到了连接字符串,但由于连接字符串位于应用程序内部,因此不确定它是什么.也许我想给应用程序一些授权与数据库服务器通信,即使它们在同一台机器上???
经过大量研究,最后用谷歌搜索"如何在iis中部署web api"我能够使用Visual Studio Publish从IIS中学习Host ASP.NET Web API,我需要添加安全实体BUILTIN\IIS_IUSRS.然后将映射放到我的数据库表中,并将数据库的db_datareader(可能还有db_datawriter)提供给IUSER,以允许从我自己托管的IIS web api进行访问.这可以从上面提到的链接部分说明
在IIS APPPOOL\ASP.NET v4.0下访问数据库当我们使用ASP.NET v4.0应用程序池时,请确保将IIS APPPOOL\ASP.NET v4.0添加到数据库服务器 - >安全性 - >登录.