【问题标题】:Publishing ASP.NET Site to Azure Changes ClientId in Web.Config将 ASP.NET 站点发布到 Azure 会更改 Web.Config 中的 ClientId
【发布时间】:2015-12-15 01:35:33
【问题描述】:

我使用 Visual Studio 2015 Update 1 创建了一个由 Azure AD 保护的简单 ASP.NET MVC 应用程序,并在本地对其进行了测试,一切正常。然后我将它部署到 Azure 网站,在验证后应用程序失败,因为它说我使用了“无效的客户端密码”。经过大量调试后,我发现由于某种原因,当应用程序上传到 Azure 时,web.config 中的 ClientId 发生了变化。我使用 Azure 中的 SCM 工具进入并手动将我的 web.config 文件编辑为我的源代码中的内容,现在一切正常。

任何人都看过这个...这是任何地方的已知问题吗?我现在正在工作,但想修复它,这样我以后就不必手动调整 web.config。

史蒂夫

【问题讨论】:

  • 如果你发布到本地文件系统会发生什么?你的 web.config 会随着部署到 Azure 应用服务而改变吗?
  • @Steve Peschka:你有没有在 web.release.config 中放入任何转换逻辑?
  • 您好小敏,如果我发布到本地文件系统,web.config 不会更改。 Kienct89,我的调试或发布配置中没有任何转换逻辑。我刚刚再次发布到 Azure 应用服务,但它再次将错误的值放在那里。

标签: visual-studio-2015 azure-web-app-service adal


【解决方案1】:

我发现了这个问题。错误的 ClientId 和 ClientSecret 在发布配置文件中,即“My Publishing Profile.pubxml”。我不知道它从哪里得到这些值,因为我从未提供过它们。不过我有一个理论……我只是将应用程序从 4.52 更改为针对 .NET 4.61。我注意到当我以 4.52 为目标运行发布向导时,该向导包含一个默认选中的框,上面写着“启用组织身份验证”。我最好的猜测是,也许通过检查它会自动在 Azure AD 中创建一个新的应用程序定义,并为其使用客户端 ID 和密码。只是猜测,试图解释未知。

解决方法是更改​​ pubxml 文件以匹配 web.config 中的内容 - shazaam - 一切正常。

【讨论】:

    【解决方案2】:

    如果您在发布期间没有使用转换,则 Azure 部署中没有可以更改 web.config 文件的逻辑。所以肯定有别的东西在起作用。

    我建议将 repro 应用程序隔离为小而无敏感位的应用程序,以便您可以在 GitHub 上共享它以进行进一步调查。此外,在执行此操作的过程中,您也许能够找出问题的根源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-31
      • 2016-06-23
      • 1970-01-01
      相关资源
      最近更新 更多