我有一个.NET core 2.2应用程序,试图将其发布到我的虚拟主机上,但结果是出现“ 500-内部服务器错误”。
我联系了支持人员,他们认为问题出在以下方面:
我们为您的网站启用了详细错误,并且显示“处理程序>” aspNetCore“在其模块列表中有错误的模块” AspNetCoreModuleV2“。您的网站似乎正在使用Microsoft.AspNetCore.App 2.2.1 应用程序,并且此版本未安装在服务器上。由于此网站无法正常运行。
在服务器上安装了Microsoft.NETCore.App 2.2.1。因此,我们建议您使用.NetCore 2.2.1重新部署应用程序,然后再次检查网站。
我们仅支持在共享托管服务器上安装的.Net核心运行时。使用正确的版本重新部署您的应用程序,以避免任何进一步的问题。请注意,我们的共享服务器不支持SCD(自包含已部署的应用程序)。我们仅支持FDD(依赖框架的已部署应用程序)。
如果执行“ dotnet --info”,则可以看到我的计算机上同时安装了.NETCore.App和AspNetCore.App。
.NET Core SDK已安装: 2.2.103 [C:\ Program Files \ dotnet \ sdk]
.NET Core运行时已安装: Microsoft.AspNetCore.All 2.2.1 [C:\ Program Files \ dotnet \ shared \ Microsoft.AspNetCore.All] Microsoft.AspNetCore.App 2.2.1 [C:\ Program 文件\ dotnet \ shared \ Microsoft.AspNetCore.App] Microsoft.NETCore.App 2.2.1 [C:\ Program> Files \ dotnet \ shared \ Microsoft.NETCore.App]
我的.csproj引用的是Microsoft.AspNetCore.App,但似乎无法将其更改为Microsoft.NETCore.App。
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App"/>
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.2.1"/>
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="6.0.0"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.1"/>
</ItemGroup>
</Project>
有什么办法可以部署此应用程序以使用Microsoft.NETCore.App,使其可以在服务器上运行?
答案 0 :(得分:0)
在您要部署的计算机上,您是否具有用于托管的.NET Core SDK? 您的发布个人资料是在创建自包含的还是依赖于框架的应用?
您要在什么上托管应用程序? IIS / Azure / Docker?
根据以上所述,发布时应选择Framework Dependent。
此外,如果您要将它托管在服务器上,则这是.net核心sdk。由于您未指定,因此我添加了Microsoft环境sdk兼容性 https://dotnet.microsoft.com/download/thank-you/dotnet-runtime-2.2.5-windows-hosting-bundle-installer