我正在尝试为ASP.NET MVC Web App构建过渡环境,但是却因问题而绊脚石,最后一个就是这样的:HTTP 500.79 Error / System.UriFormatException when deploying ASP.NET App to Azure Web App
当前,我收到HTTP 403-禁止,“您无权查看此目录或页面。”尝试访问页面时出错。
在身份验证方面,该应用程序使用Azure Active Directory作为身份验证提供程序,它在本地测试(使用Test-AAD)和生产环境中运行良好。本地和生产性应用程序未使用Azure Web Apps。我在“ Azure应用程序服务”页面上注意到,可以在Azure中直接指定身份验证,但是我真的不希望/不需要使用身份验证,因为所有内容都在应用程序响应中指定。在web.config中配置(ClientID,ClientSecret和Tenant)。无论如何,当我尝试直接在Azure上填写身份验证时,它也不起作用,因此我再次将其删除。
现在发生的情况是,重定向到login.microsoftonline.com上的“登录”页面有效,并且根据AAD管理员的说法,登录尝试成功,或者至少不显示任何陈词滥调。但是,当重定向到我的页面时,我得到了通用403,没有任何其他信息可以帮助解决问题。
我确实检查了各种日志以获取更多详细信息,而我发现的唯一含义是,出于某些非常奇怪的原因,所有请求都是针对完全乱码的URL进行的:
请求的URL /指定的答复URL:https:\\skillmanagementtest.azurewebsites.net
根据日志实际请求的URL:https:\\Skillmanagementtest:80
我绝对不知道此URL的来源,但是,“ Skillmanagementtest”的大写字母似乎是我为Azure Web App指定的名称: Screenshot resource group items
web.config在CI / CD管道中已正确转换,我仔细检查了那里的身份验证设置(租户,clientID,clientSecret),我真的不知道是什么原因导致了这个问题。>
我在其他问题上发现的一个提示是检查IIS日志,但是当我尝试访问目录时,即使我对App Service拥有所有者权限,据说这些日志也被放置在拒绝访问中...
更新
经过漫长而疲倦的尝试和讨论之后,我们终于启动并运行了该应用程序。我们所做的一些观察对于其他有此问题或类似问题的人可能很有趣:
答案 0 :(得分:1)
检查并确保web.config和应用程序设置中的内容与门户中应用程序注册的回复URL中的内容匹配。某些地方可能有一些参考,其中答复URL不匹配。
您是否正在使用openid示例? https://github.com/Azure-Samples/active-directory-dotnet-webapp-openidconnect
还请确保您以租户下具有正确权限的用户身份登录,并登录到应用程序本身。我和我的同事制作了一个简短的视频,其中包含正确的配置,可能会对此用例有所帮助。 https://www.youtube.com/watch?v=MohaxN6fsDs
答案 1 :(得分:1)
经过漫长而疲倦的尝试和讨论之后,我们终于启动并运行了该应用程序。我们所做的一些观察对于其他有此问题或类似问题的人可能很有趣: