Iis “如何修复错误”;ANCM进程内处理程序加载失败“;?

Iis “如何修复错误”;ANCM进程内处理程序加载失败“;?,iis,asp.net-core,asp.net-core-2.2,Iis,Asp.net Core,Asp.net Core 2.2,我正在Windows Server 2016标准上设置IIS中的第一个站点。 这是一个netcore2.2应用程序。我无法让网站显示 我得到这个错误: HTTP错误500.0-进程处理程序中的ANCM加载失败 我可以更改什么来清除此错误并显示我的站点 我的应用程序是一个dll 我使用命令提示符在服务器上测试了我的应用程序 dotnet ./MyApp.dll 它显示在浏览器中,但仅在服务器本身上显示(localhost:5001/) 使用此方法,无法从任何其他服务器访问站点。 当我通过IIS设

我正在Windows Server 2016标准上设置IIS中的第一个站点。 这是一个
netcore2.2
应用程序。我无法让网站显示

我得到这个错误:

HTTP错误500.0-进程处理程序中的ANCM加载失败

我可以更改什么来清除此错误并显示我的站点

我的应用程序是一个
dll

我使用命令提示符在服务器上测试了我的应用程序

dotnet ./MyApp.dll
它显示在浏览器中,但仅在服务器本身上显示(
localhost:5001/

使用此方法,无法从任何其他服务器访问站点。 当我通过IIS设置站点时,我在服务器上和试图访问站点的服务器上都会收到进程中错误

起初,我收到了Out进程错误。我读过一些东西,说要把这个(hostingModel=“inprocess”)添加到我的
web.config
所以我做了,但现在我收到了进程中的错误

该站点安装在我的开发服务器上时运行良好

事件查看器显示“IIS AspNetCore模块V2”的此错误:

无法启动应用程序“/LM/W3SVC/2/ROOT”,错误代码“0x8000ffff”

这是我的
web.config


对于我的特殊问题,是IIS中的站点权限


我编辑了“每个人”的权限,它成功了。我从这个页面获得了信息:

在我的情况下,更新.net core sdk工作正常。

我在.net core 2.2中遇到了同样的问题。当我替换

web.config:



那么它工作得很好

注意:同样的解决方案也适用于.Net core 2.2和其他更高版本。

我在这里解决了这个问题-您需要指定程序使用进程内或进程外模型

我将CreateWebHostBuilder更改为:

公共静态IWebHostBuilder CreateWebHostBuilder(字符串[]args)
{
var env=Environment.GetEnvironmentVariable(“ASPNETCORE_环境”);
var builder=WebHost.CreateDefaultBuilder(args);
if(env==EnvironmentName.Staging | | env==EnvironmentName.Production)
builder.UseIIS();
builder.UseStartup();
返回生成器;
}
另外,我通过添加以下内容在my.pubxml部署配置文件中设置
ASPNETCORE_环境


登台

如果您尝试使用IIS url访问站点,但Visual Studio设置为使用IISExpress,则可以获得此信息

另见

长话短说,当您在IIS和IISExpress之间切换时,Visual Studio会更改web.config。如果在设置为使用IISExpress时使用IIS url,则aspNetCore进程路径将是错误的


此外,复制web.config文件也很常见。如果不更改进程路径,则可能会出现相同的错误打开.csproj文件,并在Project>PropertyGroup>AspNetCoreHostingModel下,将值“InProcess”更改为“OutOfProcess”

<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>

netcoreapp2.2
进程外

有关详细信息,请在web.config中设置

stdoutLogEnabled="true"

然后检查日志文件夹。就我而言,这与项目、发布或托管设置无关——这是我的错,因为我没有复制我的应用程序所必需的文件。错误只是“找不到文件”D:\Development\IIS Hosting Test\filename.ext“

将平台目标更改为任何CPU


有时这是因为多个应用程序可能使用相同的应用程序池

在这种情况下,第一个应用程序将工作,而其他应用程序将不工作


解决方案是为每个应用程序创建新的应用程序池。

对我来说,这是因为我在我的应用程序中定义了两次ASPNETCORE\u环境变量,一次在web.config中,另一次在applicationhost.config中,我遇到了相同的错误

根据Microsoft(),我们应该在托管服务器中安装“ASP.NET核心托管包”

'ASP.NET Core托管捆绑包包括.NET Core运行时和ASP.NET Core运行时。如果安装在带有IIS的计算机上,它还将添加ASP.NET Core IIS模块'


之后,我的服务器上安装了“AspNetCoreModuleV2”,一切正常。它不需要更改您的“web.config”文件。

在我的情况下,只需将MVC添加到Startup.cs中,请按照图片进行操作。我正在尝试添加依赖项注入,然后显示此问题。我认为这会有所帮助。
如下图:

删除web配置中的“hosting Model=“in process”部分

例如:

<aspNetCore processPath="dotnet" arguments=".\WebAPICore.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />


我还得到了
“HTTP错误500.0-进程处理程序中的ANCM加载失败”

除了我的情况……在我获得死亡蓝屏之前,一切都很顺利。

我有两个启动项目的解决方案。
一个是API(出现),另一个是WebApp(出现错误)。
两者都是.NET Core 3.1。也是VS2019

首先,我试着在program.cs的Main()中设置一个断点……它从未走到这一步

 public static void Main(string[] args)
 {
     CreateHostBuilder(args).Build().Run();
 }
凭直觉…我看了一下安装的NuGet软件包。 我已卸载并(重新)安装


…现在它又开始工作了。

如果其他人找不到解决方案,我的方案如下:
我最近使用.NET 5启动了一个新项目,一切正常。然后我从Preview 5升级到7,突然我的IIS Express无法工作。我的解决方案是修复Visual Studio:


.

我相信IISExpress一路上被搞砸了

请尝试以下操作:

来自VS的“清洁溶液”
转到解决方案文件夹并从中删除.vs文件夹。

构建并运行。

当我将IIS Express中的窗体调试切换到IIS时,我遇到了这种情况
 public static void Main(string[] args)
 {
     CreateHostBuilder(args).Build().Run();
 }
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation(3.1.6)
Executable was not found at '...\bin\Debug\netcoreapp3.1\%LAUNCHER_PATH%.exe'
<aspNetCore processPath="dotnet" arguments=".\ProjectName.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
development: <aspNetCore requestTimeout="23:00:00" processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" forwardWindowsAuthToken="false" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" startupTimeLimit="3600" hostingModel="InProcess">

deployment : <aspNetCore requestTimeout="23:00:00" processPath=".\Nop.Web.exe" arguments="" forwardWindowsAuthToken="false" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" startupTimeLimit="3600" hostingModel="InProcess">