【发布时间】:2017-01-17 16:14:33
【问题描述】:
我最近将一个 ASP.Net Web API 项目部署到我们的 Azure App Service 测试槽,但在向 API 端点发出请求时开始收到错误消息。通过远程调试,很明显该应用正在从部署的web.config 文件中提取我的开发连接字符串。
连接字符串假定来自我们通过 Azure 门户设置的应用程序设置 - 在以前的部署中,它们是 - 但事实并非如此。
为什么会发生这种情况以及可以采取哪些措施来确保发生正确的行为?我们绝对不希望我们的生产数据库机密通过web.config...
【问题讨论】:
-
您是第一次将项目部署到部署槽吗?如果是,您还必须将配置添加到部署槽的应用程序设置中。
-
您能否发布您用于读取配置的 .NET 框架方法的名称?
-
@AbhaySaraf - 它使用
ConfigurationManager.ConnectionStrings["..."].ConnectionString读取设置值。我应该注意到这是 ASP.Net Web API 2 -
你解决过这个问题吗?我遇到了同样的问题。
-
这按预期工作,因为如果您在已经运行 ASP.NET 的 AppDomain 之外创建一个新的 AppDomain,则 App-Service 提供的 app-settings 将无法正确注入。当应用程序使用 ASP.NET 请求处理程序模块启动时,我们使用反射注入应用程序设置,因此该技巧仅适用于 ASP.NET 的应用程序域。
标签: azure asp.net-web-api azure-web-app-service azure-app-api