首页 文章

Azure上的Asp.Net Core 2.0产生了502.5

提问于
浏览
31

我有一个小型的Web应用程序,使用部署在Azure上的Asp.Net Core 1.1开发,效果很好 . 我刚刚迁移了项目以使用Asp.Net Core 2.0并尝试在Azure上部署它 . 部署进行得很顺利,但是当我打开网站时,出现了502.5错误 . 当我检查我的Azure日志流时,我收到以下错误:

当CGI应用程序未返回有效的HTTP标头集,或者代理或网关无法将请求发送到父网关时,会发生此错误 . 如果不是CGI问题,您可能需要获取网络跟踪或联系代理服务器管理员 .

毫无疑问,它在我的开发机器上使用相同的代码运行良好 . 请注意,我也使用Entity Framework Core 2.0,尽管我在Azure上停用了数据库创建(以检查它是否不是原因) .

有关信息,我从1.1迁移到2.0的方法是将目标框架设置更改为“netcoreapp2.0”并使用NuGet包“Microsoft.AspNetCore.All” . 为了确定,我还删除了我的发布配置文件并重新创建了一个 .

是否有可能Azure上尚未提供Asp.Net Core 2.0?我是Asp.Net Core的新手,因此我不知道Azure上何时提供新版本 .

EDIT

当我尝试通过natemcmaster提出的调试控制台使用dot net CLI运行我的应用程序时,我遇到了以下问题:

未处理的异常:System.IO.FileLoadException:无法加载文件或程序集'Microsoft.AspNetCore.Hosting.Abstractions,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = adb9793829ddae60' . 定位的程序集的清单定义与程序集引用不匹配 . (HRESULT异常:0x80131040)

我在我的桌面上下载了DLL并检查了Dot Net Peak的版本,事实上,DLL是1.1.2,虽然我使用Visual Studio创建项目并直接发布它,因此它是Visual Studio的问题吗?还是Nuget?

8 回答

  • 1

    问题实际上来自这样一个事实,起初,我的网络应用程序正在使用.net核心1.1,它将所有DLL部署在Web应用程序的“wwwroot”文件夹中 . 然而,使用asp.net core 2.0,它不再那样做,因为DLL是从全局商店中获取的 . 但是,由于Visual Studio在发布之前没有清理目标文件夹,我最终遇到了1.1 DLL在我的wwwroot中的情况,因此网站正在拾取这些而不是商店文件夹中的2.0 .

    这里有更详细的解释:https://github.com/Azure/app-service-announcements-discussions/issues/2#issuecomment-313816550

  • 0

    其他人已经解释了为什么会发生这种情况 . 我想提供另一个 - 可以说更容易 - 解决问题的方法 .

    只需更改设置,即可删除Azure上已有的文件 - 请参阅以下内容:

    publish project settings

    publish project settings option

  • 1

    检查门户中的日志文件或远程访问 D:\home\LogFiles .

    有时,日志不会指示出现了什么问题 . 进一步调查的另一个好方法是尝试从调试控制台启动ASP.NET Core应用程序 . 如果您缺少共享框架版本或者存在另一个启动错误,则可以从调试控制台更明显地看到此错误 .

    https://(your web site name here).scm.azurewebsites.net/DebugConsole/
    

    您的网站将在 D:\home\site\wwwroot . 您可以通过执行以下命令启动它

    cd D:\home\site\wwwroot
    dotnet MyWebApp.dll
    

    如果您的应用仍然无法启动,请确保 D:\home\site\wwwroot\web.config 可用并配置为使用ASP.NET核心模块 . https://docs.microsoft.com/en-us/aspnet/core/hosting/aspnet-core-module

  • 15

    https://github.com/Azure/app-service-announcements/issues/14 "The rollout is expected to complete by Friday June 30th."

  • 20

    在我的情况下出现问题是因为当时AppService支持2.0.0-preview2-006497,但我安装了2.0.0-preview3-006890,用于构建 . 所以我添加了 global.json 来使用预览2 SDK,然后就可以了

  • 5

    在我的情况下,它是由项目名称中有一个空格引起的 .

    • 我可以随意添加一个空格,发布=> 502.5 .

    • 删除空格,发布=>好去 .

    很难相信,但我很容易与上面重复 .

    也使用"Remove Additional Files at Destination"每@Sam's Answer

  • 1

    我不知道有一天这是否有助于某人,但就我而言,我正在使用:-Microsoft.AspNetCore.All 2.0.5

    对Microsoft.AspNetCore.All 2.0.3的下载解决了我的问题

  • 0

    当您的ASP.NET Core版本无法在服务器上匹配时会发生这种情况 .

    最简单的解决方案是更改您的设置以将应用程序部署为自包含,因此在升级时不会出现问题,如@Sam所述 .

    enter image description here

相关问题