我正在尝试 .NET core sdk 2.2 附带的一项新功能,据说可以将性能提高约 400%。
令人印象深刻,所以我在我的 ABP(ASP.NET Boilerplate)项目上尝试了它
模板 asp.net core mvc 4.0.2.0
我将以下内容添加到我的 web.mv.cproj
文件
<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" />
</ItemGroup>
不幸的是,我认为这个版本的 ABP 框架不兼容,因为该项目根本无法运行并抛出:(最终)
HTTP Error 500.30 - ANCM In-Process Start Failure
我在 web.config 中设置 stdoutLogEnabled="true"
并重试后检查了日志 - 但没有条目。
有人在进程设置中成功地针对 asp.net core 运行当前的 ABP 吗?
我认为这可能只在 ABP vNext 中可用。
最佳答案
在 ASP.NET Core 2.2 中,随 IIS 一起发布了一个新的服务器/托管模式,名为 IIS InProcess hosting 。要启用进程内托管,请添加 csproj 元素 AspNetCoreHostingModel 以在 web.config 文件中将 HostingModel 设置为进程内。此外,web.config 还指向一个名为 AspNetCoreModuleV2 的新模块,这是进程内托管所必需的。
如果您要部署到的目标计算机没有 ANCMV2,则您无法使用 IIS InProcess 托管。如果是这样,正确的行为是安装 dotnet hosting bundle到目标计算机或降级到 AspNetCoreModule。
尝试更改 csproj 中的部分(使用文本编辑器编辑)
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>
以下...
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
<AspNetCoreModuleName>AspNetCoreModule</AspNetCoreModuleName>
</PropertyGroup>
关于c# - HTTP 错误 500.30 - ANCM 进程内启动失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53811569/