自从此版本推出以来,我一直在Azure上运行我的ASP.NET Core 2.1 Preview-1应用程序。我已经通过门户安装了ASP.NET核心运行时扩展,它一直运行良好。
现在Microsoft发布了ASP.NET Core 2.1 Preview-2,我将升级安装到了SDK。更新了我的Nuget软件包,以便我拥有所有内容的预览版本。请参阅下面的csproj文件:
我还从我的应用程序的Azure App Service中删除了ASP.NET Core Runtime扩展,显示了2.1 Preview-1。而是分别为x86和x64安装了ASP.NET Core 2.1运行时 - 请参见下文:
编译应用程序并将其发布到我的Azure App服务,但我收到错误。首先我得到了502.5错误。现在,我得到:
指定的CGI应用程序遇到错误,服务器终止了该进程。
我在这里错过了什么?
更新:
正如答案所示,我将目标设置为x86(为了安全起见) - 见下文:
我删除了扩展和单独的x86和x64运行时并仅安装了支持ASP.NET Core 2.1预览-2的x86 - 见下文:
我重新启动了应用程序几次,我仍然得到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
。如果我正确读取它,我没有正确的运行时。
更新3:
更新4:
我安装了x86版本的ASP.NET Core 2.1 Runtime - 见下文:
当我在Kudu控制台中运行dotnet --info
时,我得到以下令我困惑的内容。我还没有看到我期待看到的版本:
当我点击URL时,我仍然在Kudu控制台中获得502.5和相同的消息,当我运行dotnet MyApp.dll
告诉我没有找到正确版本的运行时。
我如何在那里获得正确的版本?我以为通过门户安装它会做到这一点。
我们已经设法使用“自包含”部署模式将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" />
我为实现这个目标而采取的步骤:
重新启动很重要 - 在重新启动.NET Core工具之前版本是错误的,我也会收到502.5错误。
当您安装了32位和64位运行时,我会尝试删除您的应用程序不需要的那个并重新启动Web应用程序。
尝试使用以下内容在项目文件夹中添加global.json
文件:
{
"sdk": {
"version": "2.1.300-preview2-008530"
}
}
之后重启您的应用程序以确保安全。
这是唯一似乎对我有用的东西。
我使用了一个自包含的部署
dotnet publish --self-contained -r win10-x64 -c Release
然后我不得不进行手动部署 - 在我的情况下使用FTP。
我真的希望这个问题得到解决,但如果我的下一次部署没有解决,我会进行zip部署。因为我的应用程序有一个ReactJs
前端,有数千个文件要部署,FTP不是很有趣!
由于此方法不依赖于Azure App Service上安装或未安装的内容,因此它是一种更直接的解决方案。
我仍然希望能够在Visual Studio中单击“发布”!
我遇到了一个复杂的网站问题,所以我创建了一个简单的网站,只有相同版本的App文件集:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.3" />
</ItemGroup>
然后,从Tim Diekmann的例子中,除了将Azure发布配置设置中的部署模式更改为自包含之外,我什么都没做 - 这很有用。