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

时间:2018-04-12 03:28:33

标签: asp.net azure asp.net-core azure-web-sites

自从此版本推出以来,我一直在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预览-2的x86 - 见下文: enter image description here

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

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

dotnet publish -c Release -r win10-x64

我收到以下错误:

  

C:\程序   文件\ DOTNET \ SDK \ 2.1.300-preview2-008530 \的SDK \ Microsoft.NET.Sdk \目标\ 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。如果我正确读取这个,我没有正确的运行时间。

enter image description here

更新3:

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

更新4:

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

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

enter image description here

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

如何在那里获得正确的版本?我以为通过门户网站安装就可以了。

7 个答案:

答案 0 :(得分:2)

我采取的步骤:

  • 删除2.1-preview1 ASP.NET核心运行时扩展。
  • 检查应用程序设置,看看您是否在32位或64位下运行。
  • 仅安装匹配的(32位或64位)ASP.NET Core 2.1 Runtime。
  • 重新启动网络应用。

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

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

答案 1 :(得分:2)

我们已经设法使用“自包含”部署模式将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" />

答案 2 :(得分:1)

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

  1. 从Azure应用服务扩展程序
  2. 中删除了旧的asp.net核心扩展程序
  3. 使用kudus删除了网站wwwroot文件夹中的所有文件。
  4. 从Azure安装了asp.net核心站点扩展,如下图所示,并重新启动了应用服务

    Azure Web App Site Extension

  5. 在部署到Azure之前,使用的发布配置选项如下图所示, Azure App Service Publish Configuration in VS 2017 15.7 Preview 3
  6. 那就是它。

答案 3 :(得分:0)

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

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

之后重启你的应用程序是为了安全起见。

答案 4 :(得分:0)

这是我觉得唯一有用的东西。

我使用

进行了自包含部署
dotnet publish --self-contained -r win10-x64 -c Release

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

我真的希望这个问题得到解决,但如果我的下一次部署无法解决,我会进行zip部署。因为我的应用程序有ReactJs前端,所以要部署数千个文件,FTP不是很有趣!

由于此方法不依赖于Azure App Service上安装或未安装的内容,因此它是一种更直接的解决方案。

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

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

答案 5 :(得分:0)

我遇到了同样的问题。最后2个小时后我修好了。

这是我的配置:

<强>扩展

enter image description here

控制台dotnet --info命令:

enter image description here

控制台kudu dotnet --version命令:

enter image description here

a)请记住在安装扩展程序后重新启动应用程序。

b)从旧文件中清除wwwroot文件夹并重新发布。

答案 6 :(得分:0)

我在一个复杂的网站上遇到了问题,所以我创建了一个简单的网站,只是将App文件设置为相同版本:

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

然后,以蒂姆·迪克曼(Tim Diekmann)为例,除了将Azure发布配置设置中的部署模式更改为自包含外,我没有做任何其他事情。 em>-可以。