Visual studio 2015 将ASP.NET网站发布到Azure会更改Web.Config中的ClientId

Visual studio 2015 将ASP.NET网站发布到Azure会更改Web.Config中的ClientId,visual-studio-2015,azure-web-app-service,adal,Visual Studio 2015,Azure Web App Service,Adal,我使用Visual Studio 2015 Update 1创建了一个由Azure AD保护的简单ASP.NET MVC应用程序,并在本地进行了测试,一切正常。然后我将其部署到一个Azure网站,在该网站上进行身份验证后,该应用程序失败,因为它说我使用的是“无效的客户端密码”。经过多次调试后,我发现由于某种原因,web.config中的ClientId在应用程序上载到Azure时发生了更改。我使用Azure中的SCM工具进入并手动将我的web.config文件编辑为源代码中的内容,现在一切正常

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

有人看到了…这是一个已知的问题吗?我现在正在工作,但是我想修复它,这样以后就不必手动调整web.config了


Steve

如果在发布过程中没有使用转换,Azure部署中没有可以更改web.config文件的逻辑。所以一定有别的事情在起作用


我建议将Repo应用程序隔离到一些小的、没有敏感信息的地方,这样你就可以在GitHub上共享它,以便进一步调查。此外,在执行此操作的过程中,您可能能够确定问题的根源。

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


不过,修复方法是只更改pubxml文件以匹配web.config和-shazaam中的内容,这一切都起了作用。

如果发布到本地文件系统会发生什么?部署到Azure应用程序服务时,您的web.config是否会更改?@Steve Peschka:您是否在web.release.config中放置了任何转换逻辑?嗨,晓敏,如果发布到本地文件系统,web.config不会更改。Kienct89,我的调试或发布配置中没有任何转换逻辑。我刚刚再次发布到Azure应用程序服务,但它再次在其中输入了错误的值。