gpt4 book ai didi

asp.net-mvc - 将 ASP.NET 应用程序部署到 Azure Web 应用程序时出现 HTTP 500.79 错误/System.UriFormatException

转载 作者:行者123 更新时间:2023-12-03 02:54:01 25 4
gpt4 key购买 nike

我正在尝试为 ASP.NET MVC 应用程序设置暂存环境,并希望将其作为 Azure Web 应用程序来实现,但此时我确实陷入了 HTTP 500 的困境。

我得到的错误是:

500.79: The request failed because of an unhandled exception in the Easy Auth module.

使用诊断日志我能够获得堆栈跟踪:

2019-01-14T13:07:22  PID[14448] Critical    System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.UriFormatException: Invalid URI: The format of the URI could not be determined.
at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
at System.Uri..ctor(String uriString, UriKind uriKind)
at Microsoft.Azure.AppService.Middleware.ModuleConfig.set_OpenIdIssuer(String value)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, Object[] index)
at Microsoft.Azure.AppService.Middleware.MiddlewareConfig.TryLoadConfig(Type type, HttpContextBase context)
at Microsoft.Azure.AppService.Middleware.ModuleConfig.EnsureConfigLoaded(HttpContextBase context)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Microsoft.Azure.AppService.Middleware.ModuleManager.LoadModuleConfig(HttpContextBase context)
at Microsoft.Azure.AppService.Middleware.ModuleManager.LoadAllModulesAndGetEnabledModules(HttpContextBase context)
at Microsoft.Azure.AppService.Middleware.HttpModuleDispatcher.EnsureInitialized(HttpContextBase context)
at Microsoft.Azure.AppService.Middleware.HttpModuleDispatcher.<DispatchAsync>d__11.MoveNext()

我使用了在 Azure 上找到的任何其他诊断工具,但无法找出更多信息,除了一个微弱的提示:使用失败请求跟踪功能,我注意到这些跟踪表明向非常奇怪且明显错误的 URL 发出了请求:

根据请求跟踪的 URL:https://Skillmanagementtest:80

实际请求的 URL:https://skillmanagementtest.azurewebsites.net

截图:Failed Request Trace

我完全不知道这个 URL 或端口来自哪里;我从未在任何地方指定过端口 80(无论如何,它是错误的,因为它是 HTTPS)。 “Skillmanagementtest”是我给 Azure Web App 起的名称,我认为我没有在其他地方使用过它。身份验证的主页 URL 和回复 URL(使用 AAD 作为身份验证提供程序)已正确设置。我的假设是,正是这个乱码 URL 导致了 UriFormatException,但我不知道该 URL 来自何处...

也就是说,应用程序似乎启动正常(日志框架在启动时放置文件之类的事情也是如此),并且启动它也不会在诊断日志中放入任何错误,但是每当发出请求时,出现上述错误。

在本地和生产环境中(使用“经典”VM,而不是 Azure Web 应用程序),Web 应用程序运行没有问题,但我无法发现这些应用程序与 Azure Web 应用程序之间的配置有任何差异(当然除外)不同的文件路径和数据库连接)。另外,考虑到命名 Azure 中间件的堆栈跟踪表明问题源于作为 Azure Web 应用程序运行的应用程序,并且作为我几乎拥有的唯一杠杆,它应该是一些配置错误...

作为设置暂存环境的一部分,我的目标是尽可能实现自动化。因此我还建立了 CI/CD resp。使用 Azure DevOps 的构建和发布管道。这似乎一切正常。配置方面,我在 web.config 上使用 XML 转换。 web.Staging.config 文件。转换均已正确应用。

--

如果有任何关于可能出错的想法,我将非常感激,因为我自己已经没有什么可以尝试的了(第三天我正在努力让它发挥作用......)

~芬罗德

最佳答案

“解决方案”:我已经修复了这个错误,并分别用另一个错误替换了它。错误的URL是应用服务“身份验证/授权”部分中的“发行者ID”;我填写了租户(即“xxxxx.onmicrosoft.com”)而不是颁发者 URL,如下所述:https://learn.microsoft.com/en-us/azure/app-service/configure-authentication-provider-aad 。但是,当我尝试向应用程序发出请求时,我现在收到 403 错误。将为此提出一个新问题,因为我再次不知道该怎么做,但也许有人在这里也遇到了这个问题。

关于asp.net-mvc - 将 ASP.NET 应用程序部署到 Azure Web 应用程序时出现 HTTP 500.79 错误/System.UriFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54182432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com