配置 web.config dotnet IIS

Configure web.config dotnet IIS

我正在开发一个 dotnet 应用程序,遵循参考和本地 Ubuntu 一切正常,但是现在我尝试发布到我的 windows 服务器,并且访问路由可配置他们自己从以下错误:

在参考中他会告诉我删除我 web.config 中格式错误的元素,但我不知道我做错了什么,有人可以帮助我吗?

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\connect-app.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" hostingModel="inprocess" />
  </system.webServer>
</configuration>

我用您提供的 0x8007000d 错误代码搜索了 500.19 IIS。我发现的文章指出,当模块丢失和/或尚未安装时会发生这种情况。

仔细检查 IIS 的 ASP.NET 核心模块是否安装在带有 web.config 的系统上,然后从那里开始。

来源

The Horrible Story of Publishing NET Core Web Apps for Beginners

MSDN - Host ASP.NET Core on Windows with IIS

ASP.NET Forums

IIS Forums


编辑:

您的 ApplicationHost.config 文件中有什么?你有<section name="aspNetCore" overrideModeDefault="Allow" />吗?

来源:

确保您已为 IIS

启用 ASP.NET 功能

Install IIS and ASP.NET modules in Windows 2016

尝试卸载和安装 IIS 运行时支持(ASP.NET 核心模块 v2)

有多种方法可能导致您出现此错误。

  • ASP.NET 核心模块 v2 未正确安装和配置。

    • here
    • 安装 ASP.NET Core Hosting Bundle
  • 验证 IIS 模块中的 AspNetCoreModuleV2
  • 有时,文件系统可能会限制对应用程序池某些路径的访问

    • 尝试将应用程序池标识添加到相应的 File/Folder

      ICACLS C:\StatusApp\ /grant "IIS AppPool\YourAppPool:F"

  • 将您的主机设为 "Out of Process" 并查看 .NET Core 应用程序已正确实例化。

1. URL重写配置不正确或安装不正确

错误 0x8007000d 如果您的 URL 重写模块在 web.config 中丢失或未安装正确的版本,可能会发生。

确保通过网络平台安装程序安装URL重写模块。(REFERENCE)

2。检查标准日志

您还可以查看 web.config 中启用的 stdlog 文本文件,以查看到底发生了什么。

3.ASP.NET 核心模块 v2

最后,按照其他用户的建议确保 ASP.NET 核心模块 v2 已正确安装和配置

我的问题是因为 IIS 安装是在 ASP.NET Core Hosting Bundle 之后完成的。这没有正确安装 ASP.NET Core Module v2。

你应该有文件夹 C:\Program Files\IIS

我需要修复托管包的安装,然后包含 ASP.NET 核心模块 v2 安装。