我的Azure应用服务突然无法启动aspnetcore2.0并且没有日志。只是错误500而且Kudu中的Application Insights或Streaming Servicecs中没有日志。
应用程序在localhost上完美运行,但是独立使用IIS Express并且在Azure之前工作正常。
我该如何解决这个问题?
答案 0 :(得分:3)
TL; DR;由于其他运行时和.NET版本,Azure可能存在绑定重定向的问题。将其添加到调用代码(通常是您的Web项目)中的csproj中。
<PropertyGroup>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
</PropertyGroup>
疑难解答步骤:
启用启动日志记录
public static IWebHost BuildWebHost(string[] args) => WebHost
.CreateDefaultBuilder(args)
.CaptureStartupErrors(true)
[...]
打开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
我在我的应用中添加Azure搜索代码的位置。
AutoGenerateBindingRedirects
。