Aru*_*mar 40 c# iis asp.net-mvc .net-core
我使用angular .net core 2.2模板来构建应用程序.在localhost工作正常,当我主机IIS我得到这个错误.我使用IIS 10来托管应用程序.
错误,
HTTP错误500.21 - 内部服务器错误处理程序"aspNetCore"在其模块列表中有一个错误的模块"AspNetCoreModuleV2"
小智 25
在主机上安装.Net Core 2.2运行时捆绑包.
要么
将项目发布为自包含.
小智 19
通过从模块=“ AspNetCoreModuleV2”中删除V2为我工作。请注意,我的问题与从Visual Studio运行.net核心Web API有关。IE Express失败,代码为500,并且在调查了描述“处理程序'aspNetCore'具有错误的模块..”的错误日志后,通过替换以下内容来解决该问题。
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
Run Code Online (Sandbox Code Playgroud)
Sha*_*uti 16
对于Windows托管
安装主机捆绑包。请注意,SDK通常包含运行时,但是,似乎SDK安装程序未在服务器上正确注册运行时。
解决方法(不建议):在web.config中更改AspNetCoreModuleV2为AspNetCoreModule。
对于Azure托管
通过选择扩展,然后安装.NET Core 2.2,安装.NET Core 2.2运行时扩展。运行时。
Ana*_*nyi 14
我发布我的答案是为了节省其他遇到同样问题的人的时间,大约需要 1 小时。我的问题是我安装了不正确的托管包。如果您的应用程序使用 .Net Core 3.1,则必须不使用链接“x64”下载它,而是使用下一页上的链接“托管包”下载: https: //dotnet.microsoft.com/download/dotnet-core /3.1
我的问题是,我认为 x64 托管捆绑包位于链接“ x64 ”中,但事实并非如此。“ x64 ”链接不包含托管捆绑包,并且无法解决问题。应仅使用链接“ Hosting Bundle ”下载托管包:
以下文章对我理解这个问题非常有帮助:https://dotnetcoretutorials.com/2019/12/23/hosting-an-asp-net-core-web-application-in-iis/
当我尝试访问 Windows 服务器上新部署的 Web 应用程序时,我也有同样的担忧。
\n它抛出以下错误:
\n\n这是我解决问题的方法:
\n首先,我使用以下链接安装了最新版本的.Net Core SDK :https: //dotnet.microsoft.com/download/dotnet/3.1。截至撰写本文时,最新版本正在3.1.14使用Windows x64安装程序(因为我的Windows 服务器是 x64),其中包括:
\xe2\x80\xa2 .NET Core SDK 3.1.408\n\xe2\x80\xa2 .NET Core Runtime 3.1.14\n\xe2\x80\xa2 ASP.NET Core Runtime 3.1.14\n\xe2\x80\xa2 .NET Core Windows Desktop Runtime 3.1.14\nRun Code Online (Sandbox Code Playgroud)\n接下来,我使用此链接安装了.NET Core 托管捆绑包https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer,它是以下安装程序:
\n\xe2\x80\xa2 .NET Core Runtime\n\xe2\x80\xa2 ASP.NET Core Module\nRun Code Online (Sandbox Code Playgroud)\n该捆绑包允许 ASP.NET Core 应用程序与 IIS 一起运行。
\n这是网页的屏幕截图,您可以在其中下载.Net Core SDK和.NET Core 托管捆绑包
\n\n这是下载的 .Net Core SDK和.NET Core 托管捆绑包的屏幕截图文件的屏幕截图,其实际文件名位于 Windows PC 的下载目录中。
\n\n安装 Hosting Bundle 后,可能需要手动重新启动 IIS。例如,dotnet CLI用于运行 IIS 工作进程的 PATH 上可能不存在
\n要手动停止和启动 IIS,请在提升的命令 shell 中执行以下命令(以管理员身份运行):
\nnet stop was /y\nnet start w3svc\nRun Code Online (Sandbox Code Playgroud)\n这次当我尝试访问网络应用程序时,它运行得很好。
\n资源:
\n\n就这样。
\n我希望这有帮助
\n有几种方法可以解决这个问题:
applicationhost.config您的 IIS 使用的文件。您应该在其适当的位置有以下条目:<configuration>
<system.webServer>
...
<globalModules>
...
<add name="AspNetCoreModuleV2" image="%IIS_BIN%\Asp.Net Core Module\V2\aspnetcorev2.dll" />
</globalModules>
</system.webServer>
...
<location path="" overrideMode="Allow">
<system.webServer>
<modules>
...
<add name="AspNetCoreModuleV2" lockItem="true" />
</modules>
</system.webServer>
</location>
</configuration>
Run Code Online (Sandbox Code Playgroud)
只需确保您aspnetcorev2.dll的 IIS bin 目录中确实有该文件。
更新
原版的
我通过将以下代码块添加到.csprojWeb应用程序中来使其工作。
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<LangVersion>latest</LangVersion>
<AspNetCoreModuleName>AspNetCoreModule</AspNetCoreModuleName>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
显然,您将在继续进行时更新netcoreapp版本。这就是我能够使事情正常进行的方式。我不知道为什么仅仅为2.2安装主机捆绑包还不够。
小智 5
我有 .net core 2.1,使用 Visual Studio 2019 (Windows 10) 的 webAPI。安装托管捆绑包 (3.1.3)。我尝试使用发布选项部署到文件夹。文件已生成。我按照快速步骤在 IIS 中创建网站。但是我开始收到 HTTP 错误 500.21。最后从部署文件夹中打开 web.config 文件并执行相反的操作 - 将 AspNetCoreModule 更改为 AspNetCoreModuleV2。现在一切都好了。感谢您的所有建议。
| 归档时间: |
|
| 查看次数: |
26463 次 |
| 最近记录: |