首页 文章

ASP.NET Core 2.1 Preview 2应用程序无法在Azure App Service上运行

提问于
浏览
12

自从此版本推出以来,我一直在Azure上运行我的ASP.NET Core 2.1 Preview-1应用程序 . 我已经通过门户安装了ASP.NET核心运行时扩展,它一直运行良好 .

现在Microsoft发布了ASP.NET Core 2.1 Preview-2,我将升级安装到了SDK . 更新了我的Nuget软件包,以便我拥有所有内容的预览版本 . 请参阅下面的csproj文件:
enter image description here

我还从我的应用程序的Azure App Service中删除了ASP.NET Core Runtime扩展,显示了2.1 Preview-1 . 而是分别为x86和x64安装了ASP.NET Core 2.1运行时 - 请参见下文:
enter image description here

编译应用程序并将其发布到我的Azure App服务,但我收到错误 . 首先我得到了502.5错误 . 现在,我得到:

指定的CGI应用程序遇到错误,服务器终止了该过程 .

我在这里错过了什么?

更新:

正如答案所示,我将目标设置为x86(为了安全起见) - 见下文:

enter image description here

我删除了扩展和单独的x86和x64运行时并仅安装了支持ASP.NET Core 2.1 preview-2的x86 - 见下文:
enter image description here

我重新启动了应用程序几次,我仍然得到502.5 .

然后我尝试通过发出以下命令通过CLI命令行进行自我部署:

dotnet publish -c Release -r win10-x64

我收到以下错误:

C:\ Program Files \ dotnet \ sdk \ 2.1.300-preview2-008530 \ Sdks \ Microsoft.NET.Sdk \ targets \ Microsoft.NET.RuntimeIdentifierInference.targets(125,5):错误:RuntimeIdentifier平台'win10- x64'和PlatformTarget'x86'必须兼容 .

这是否意味着我安装了x86版本的SDK并且我必须以x86为目标?

我没有遇到一半麻烦,我现在要经历从ASP.NET Core 2.0到2.1!

更新2:刚刚在Kudu控制台中运行 dotnet --info . 如果我'm reading this correctly, I don' t具有正确的运行时间 .

enter image description here

更新3:

我认为这个屏幕截图确认了我在说什么 .
enter image description here

Update 4:

我安装了x86版本的ASP.NET Core 2.1 Runtime - 见下文:
enter image description here

当我在Kudu控制台中运行 dotnet --info 时,我得到以下令我困惑的内容 . 我还没有看到我期待看到的版本:

enter image description here

当我点击URL时,我仍然在Kudu控制台中获得502.5和相同的消息,当我运行 dotnet MyApp.dll 告诉我没有找到正确版本的运行时 .

我如何在那里获得正确的版本?我以为通过门户安装它会做到这一点 .

7 回答

  • 0

    我们已经设法使用“自包含”部署模式将ASP.NET Core 2.1 RC1 webapp发布到Azure应用服务 .

    平台目标:任何CPU

    以下是我们的.csproj的包引用:

    <PackageReference Include="Microsoft.AspNetCore.App" /> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.0-rc1-final" PrivateAssets="All" /> <PackageReference Include="Microsoft.AspNetCore.AzureAppServicesIntegration" Version="2.1.0-rc1-final" />

  • 0

    我为实现这个目标而采取的步骤:

    • 删除2.1-preview1 ASP.NET核心运行时扩展 .

    • 检查应用程序设置以查看您是在32位还是64位下运行 .

    • 仅安装匹配的(32位或64位)ASP.NET Core 2.1 Runtime .

    • 重新启动Web应用程序 .

    重新启动很重要 - 在重新启动.NET Core工具之前版本是错误的,我也会收到502.5错误 .

    当您安装了32位和64位运行时,我会尝试删除您的应用程序不需要的那个并重新启动Web应用程序 .

  • 0

    我让我的项目在Azure上的asp.net core 2.1 Preview 2上工作 . 我做了以下步骤;

    • 从Azure应用服务扩展中删除了旧的asp.net核心扩展

    • 使用kudus删除了站点的wwwroot文件夹中的所有文件 .

    • 从Azure安装了asp.net核心站点扩展,如下图所示,并重新启动了应用服务

    Azure Web App Site Extension

    • 在部署到Azure之前,使用的发布配置选项如下图所示,
      Azure App Service Publish Configuration in VS 2017 15.7 Preview 3

    而已 .

  • 2

    尝试使用以下内容在项目文件夹中添加 global.json 文件:

    {
      "sdk": {
        "version": "2.1.300-preview2-008530"
      }
    }
    

    之后重启您的应用程序以确保安全 .

  • 0

    这是唯一似乎对我有用的东西 .

    我使用了一个自包含的部署

    dotnet publish --self-contained -r win10-x64 -c Release
    

    然后我不得不进行手动部署 - 在我的情况下使用FTP .

    我真的希望这个问题得到解决,但是如果它是's not resolved by my next deployment, I' ll做zip部署 . 因为我的应用程序有一个 ReactJs 前端,所以要部署数千个文件,FTP并不是很有趣!

    由于此方法不依赖于Azure App Service上安装或未安装的内容,因此更直接解 .

    我仍然希望能够在Visual Studio中单击“发布”!

    更新:我刚刚进行了zip部署,即使zip部署成功,我仍然会收到我之前遇到的错误 . 所以,有些事情仍然不对!
    enter image description here

  • 1

    我有同样的问题 . 最后2个小时后我修好了 .

    这是我的配置:

    Extensions:

    enter image description here

    Console dotnet --info command:

    enter image description here

    Console kudu dotnet --version command:

    enter image description here

    a)记得在安装扩展程序后重新启动应用程序 .

    b)从旧文件中清除wwwroot文件夹并再次发布 .

  • 2

    我遇到了一个复杂的网站问题,所以我创建了一个简单的网站,只有相同版本的App文件集:

    <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore.App"  Version="2.1.3" />
      </ItemGroup>
    

    然后,从Tim Diekmann的例子中,除了将Azure发布配置设置中的部署模式更改为自包含之外,我什么都没做 - 这很有用 .

相关问题