Netcoreapp2.0韩元';无法在Azure应用程序服务中启动,错误为500且没有日志

Netcoreapp2.0韩元';无法在Azure应用程序服务中启动,错误为500且没有日志,azure,azure-web-app-service,asp.net-core-2.0,Azure,Azure Web App Service,Asp.net Core 2.0,突然,我的Azure应用程序服务无法启动aspnetcore2.0,并且没有日志。只有错误500,Kudu中的Application Insights或Streaming Services中没有日志 该应用程序在本地主机上运行良好,但它是独立的,并与IIS Express配合使用,昨天在Azure上运行良好 如何排除故障?TL;博士由于其他运行时和.NET版本的原因,Azure可能在绑定重定向方面存在问题。在调用代码(通常是web项目)中将其添加到csproj中 打开Kudu工具并观看流日志服

突然,我的Azure应用程序服务无法启动aspnetcore2.0,并且没有日志。只有错误500,Kudu中的Application Insights或Streaming Services中没有日志

该应用程序在本地主机上运行良好,但它是独立的,并与IIS Express配合使用,昨天在Azure上运行良好


如何排除故障?

TL;博士由于其他运行时和.NET版本的原因,Azure可能在绑定重定向方面存在问题。在调用代码(通常是web项目)中将其添加到csproj中

  • 打开Kudu工具并观看流日志服务

    https://.scm.azurewebsites.net/api/logstream

  • 您可能会发现如下错误:

    2017-12-09 11:53:33.304 +00:00 [Error] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HL9UVDQACN2F", Request id "0HL9UVDQACN2F:00000002": An unhandled exception was thrown by the application.
    System.IO.FileNotFoundException: Could not load file or assembly 'System.Net.Http.WebRequest, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.
    File name: 'System.Net.Http.WebRequest, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
       at Microsoft.Rest.ServiceClient`1.CreateRootHandler()
    
    [……]

    查找代码可能加载程序集的位置,我发现:

    File name: 'System.Net.Http.WebRequest, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
       at Microsoft.Rest.ServiceClient`1.CreateRootHandler()
       at MyApp.MiddleLayer.Services.AzureSearch.DependencyInjection.<>c.<AddAzureSearch>b__0_1(IServiceProvider x) in C:\<Path>.Services.AzureSearch\DependencyInjection.cs:line 27
    
    文件名:'System.Net.Http.WebRequest,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b03f5f7f11d50a3a'
    位于Microsoft.Rest.ServiceClient`1.CreateRootHandler()
    在c:\.Services.AzureSearch\DependencyInjection.cs:第27行中的MyApp.MiddleLayer.Services.AzureSearch.DependencyInjection.c.b_u0_1(IServiceProvider x)中
    
    这就是我在应用程序中添加Azure搜索代码的地方

  • 要么添加缺少的程序集,要么像我在Azure Search SDK引用旧程序集的情况一样,按照本文顶部所述启用
    AutoGenerateBindingRedirects

  • 所以它突然坏了,你没有做任何新的部署?您是在.NET Core还是在完整框架上使用ASP.NET Core?您是否可以直接或间接共享您的web应用程序名称?另外,你能检查一下它是否更新到2016年,以防相关吗?没有,它在部署后坏了,但以前工作过。使用.NETCore2.0。Azure Search SDK破坏了它。Azure上的构建过程应该与VS中的相同,我猜
    System.Net.Http.WebRequest
    是从您在本地测试时加载的,您可以尝试1吗。发布到并查看是否显示了缺少的程序集?或2。清除缓存,然后再次运行?我清除了缓存,所以不会是这样。似乎本地计算机上的版本与Azure上部署的版本不匹配。
    2017-12-09 11:53:33.304 +00:00 [Error] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HL9UVDQACN2F", Request id "0HL9UVDQACN2F:00000002": An unhandled exception was thrown by the application.
    System.IO.FileNotFoundException: Could not load file or assembly 'System.Net.Http.WebRequest, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.
    File name: 'System.Net.Http.WebRequest, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
       at Microsoft.Rest.ServiceClient`1.CreateRootHandler()
    
    File name: 'System.Net.Http.WebRequest, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
       at Microsoft.Rest.ServiceClient`1.CreateRootHandler()
       at MyApp.MiddleLayer.Services.AzureSearch.DependencyInjection.<>c.<AddAzureSearch>b__0_1(IServiceProvider x) in C:\<Path>.Services.AzureSearch\DependencyInjection.cs:line 27