我正在Windows Server 2016 Standard上的IIS中设置第一个站点。这是一个Core 2.2应用程序。我无法显示该网站。我收到此错误,“ HTTP错误500.0-ANCM进程内处理程序加载失败”。我可以更改些什么来清除此错误并显示我的网站?
我的应用程序是dll。我通过命令提示符在服务器上使用“ .net。/ MyApp.dll”对我的应用程序进行了测试,该应用程序在浏览器中显示,但仅在服务器本身上显示(localhost:5001 /)。使用此方法无法从任何其他服务器访问该站点。当我通过IIS设置站点时,在服务器上以及尝试访问该站点的服务器上都出现了In-Process错误。起初,我收到进程外错误。我读到的东西说要将此内容添加(hostingModel =“ inprocess”)到我的web.config中,所以我这样做了,但是现在我收到了In-Process错误。我已经研究了3天,但我尝试过的所有方法都无法解决。安装在我的开发服务器上后,该站点可以正常工作。
事件查看器针对“ IIS AspNetCore模块V2”显示此错误: 无法启动应用程序“ / LM / W3SVC / 2 / ROOT”,错误代码为“ 0x8000ffff”。
web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<customErrors mode="RemoteOnly"></customErrors>
<identity impersonate="false" password="****" userName="****" />
</system.web>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\MyApp.dll" stdoutLogEnabled="false" hostingModel="inprocess" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false">
<environmentVariables />
</aspNetCore>
</system.webServer>
</configuration>
答案 0 :(得分:12)
.Net core 2.2中存在相同的问题。当我更换
web.config:
<handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> </handlers>
to
<handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> </handlers>
然后正常工作。更详细的信息是here
答案 1 :(得分:7)
我有同样的错误。
根据Microsoft(https://dotnet.microsoft.com/download/dotnet-core/current/runtime),我们应该在托管服务器中安装“ ASP.NET Core托管捆绑包 ”。
' ASP.NET Core托管捆绑包包括.NET Core运行时和ASP.NET Core运行时。如果安装在装有IIS的计算机上,它还将添加ASP.NET Core IIS模块'
完成后,在服务器上安装了“ AspNetCoreModuleV2 ”,一切正常。不需要更改您的“ web.config ”文件。
答案 2 :(得分:5)
有时是因为多个应用可能正在使用相同的应用池
在这种情况下,第一个应用程序将起作用,而其他应用程序将不起作用
解决方案是为每个应用程序创建新的应用程序池。
答案 3 :(得分:1)
我今天遇到了同样的问题,在服务器上安装以下软件包为我解决了这个问题。如果您已经在服务器上安装了任何以前版本的 Windows Hosting Bundle,则无需重新启动服务器即可安装新版本。
答案 4 :(得分:0)
就我而言,更新.net core sdk可以正常工作。
答案 5 :(得分:0)
就我而言,我将 app_name.exe 从我的备份文件夹放回 bin\debug,然后它就成功了。
如果您没有包含 exe 的备份文件夹,请不要担心发布您的网络应用程序/网络 API 并从那里复制
答案 6 :(得分:0)
对我来说,这是由用于开发和部署的不同 web.config 文件引起的:
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">
答案 7 :(得分:0)
当我尝试以 false
格式从 ViewModel 获取数据并且我的数据以 List<>
格式获取时出现该错误。
在你们更新你的 vs2019 或删除一些文件之前,你最好检查一下那个选项。
答案 8 :(得分:0)
当我将 IIS Express 中的表单调试切换到 IIS 时,这发生在我身上。我检查了事件查看器 > 应用程序日志,并在那里发现了以下错误:
Executable was not found at '...\bin\Debug\netcoreapp3.1\%LAUNCHER_PATH%.exe'
然后我在下面的 thread 中找到了解决方案。
我基本上需要用应用程序的硬编码名称替换 web.config 条目:
<aspNetCore processPath="dotnet" arguments=".\ProjectName.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
答案 9 :(得分:0)
我相信IISExpress一路搞砸了。
尝试以下操作:
VS的“清洁解决方案”
转到解决方案文件夹,然后从其中删除.vs文件夹。
构建并运行。
答案 10 :(得分:0)
如果其他人找不到解决方案,这是我的情况:
我最近使用.NET 5启动了一个新项目,一切正常。然后,我从预览5升级到了7,突然间我的IIS Express不再起作用。对我来说,解决方法是简单地修复Visual Studio:
。
答案 11 :(得分:0)
我也得到"HTTP Error 500.0 - ANCM In-Process Handler Load Failure"
除了我的情况...一切运转良好,直到我得到Blue Screen of Death.
我有一个包含两个启动项目的解决方案。
一个是API(出现了),另一个是WebApp(得到了错误)。 Both are .NET Core 3.1
..还有VS2019。
首先,我尝试在program.cs的Main()中设置一个断点...它从来没有走过这么远。
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
直觉...我看着安装的NuGet软件包。 我已卸载并(重新)安装
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation(3.1.6)
...现在又可以正常工作了。
答案 12 :(得分:0)
在网络配置中删除“托管模型=“正在处理””部分。
示例:
<aspNetCore processPath="dotnet" arguments=".\WebAPICore.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
到
<aspNetCore processPath="dotnet" arguments=".\WebAPICore.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
答案 13 :(得分:0)
就我而言,只需将MVC添加到Startup.cs中,请进入图像。我试图添加依赖项注入,然后显示此问题。我认为这会有所帮助。 跟随这张图片:https://i.stack.imgur.com/ykw8P.png
答案 14 :(得分:0)
对我来说是因为我在我的应用程序中两次定义了ASPNETCORE_ENVIRONMENT环境变量-一次在web.config中定义,另一次在applicationhost.config中
答案 15 :(得分:0)
有关更多信息,请在web.config中设置
stdoutLogEnabled="true"
然后检查日志文件夹。以我为例,它与项目,发布或托管设置无关-这是我的错,因为没有复制对我的应用程序至关重要的文件。错误只是“找不到文件“ D:\ Development \ IIS Hosting Test \ filename.ext”
答案 16 :(得分:0)
打开.csproj文件,然后在“项目”>“属性组”>“ AspNetCoreHostingModel”下,将值“ InProcess”更改为“ OutOfProcess”。
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
答案 17 :(得分:0)
如果尝试使用IIS URL访问站点但将Visual Studio设置为使用IISExpress,则可以获得此信息
另请参阅 ASP.Net Core 1.0 RC2 : What are LAUNCHER_PATH and LAUNCHER_ARGS mentioned in web.config?
长话短说,当您在IIS和IISExpress之间切换时,Visual Studio会更改web.config。如果您在设置为使用IISExpress时使用IIS网址,则aspNetCore processPath将是错误的
此外,复制web.config文件并不罕见。如果不更改processPath
,可能会收到相同的错误答案 18 :(得分:0)
我在Asp.Net Core Fails To Load处解决了此问题-您需要指定程序使用进程内或进程外模型。
我将CreateWebHostBuilder更改为:
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
var builder = WebHost.CreateDefaultBuilder(args);
if (env == EnvironmentName.Staging || env == EnvironmentName.Production)
builder.UseIIS();
builder.UseStartup<Startup>();
return builder;
}
PS。我通过添加以下内容在.pubxml部署配置文件中设置ASPNETCORE_ENVIRONMENT:
<PropertyGroup>
<EnvironmentName>Staging</EnvironmentName>
</PropertyGroup>
答案 19 :(得分:0)
对于我的特定问题,这是IIS中的网站权限。
我编辑了“所有人”的权限,并且可以使用。我从此页面获得信息:https://github.com/aspnet/AspNetCore/issues/6111
答案 20 :(得分:-1)
将平台目标更改为任何CPU。
答案 21 :(得分:-1)
我尝试将 aspnetCoreModuleV2 更改为 aspnetCoreModuleV2,这很有效,但是每次我在 Visual Studio 中发布它时都很难更改。 经过测试,我发现我可以更改 IIS 的应用程序池默认设置,以启用 32 位应用程序。
不过我没在32位电脑上测试过,应该没问题。