.NET 6.0 MVC 应用程序在 Windows 10 上的 IIS 中返回 404

Posted

技术标签:

【中文标题】.NET 6.0 MVC 应用程序在 Windows 10 上的 IIS 中返回 404【英文标题】:.NET 6.0 MVC App returns 404 in IIS on Windows 10 【发布时间】:2021-11-19 04:05:52 【问题描述】:

我刚刚将一个用 .net 2.1 编写的应用程序刷新到了 .net 6.0。我解决了这些错误,并且该站点似乎可以干净地编译。我发布到服务器后有很多错误。通过它们,并在我自己的机器上安装完整的 IIS,我现在将其归结为 404 错误。

直接从控制台运行 exe 时,它​​运行时不会出错。

Z:\ReportGroups>FleetLogix.ReportGroups.exe
warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
  No XML encryptor configured. Key snip may be persisted to storage in unencrypted form.

c:\inetpub\wwwroot\ReportGroups>FleetLogix.ReportGroups.exe
Hosting environment: Production
Content root path: c:\inetpub\wwwroot\ReportGroups
Now listening on: http://localhost:5000
Now listening on: https://localhost:5001
Application started. Press Ctrl+C to shut down.
Application is shutting down...

Web.config 是

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\FleetLogix.ReportGroups.dll" forwardWindowsAuthToken="false" startupTimeLimit="3600" requestTimeout="23:00:00" stdoutLogEnabled="false" hostingModel="inprocess" stdoutLogFile=".\logs\stdout" />
    </system.webServer>
  </location>
</configuration>

查看事件查看器,没有什么值得注意的。 System nothing for IIS, IIS-Configuration 和 IIS-Admin 都是空的。

编辑 2021-11-22

花了一个上午,但我安装了请求跟踪。对于 Windows 10 上的用户,只需转到添加功能 > IIS > 健康 > 跟踪。不要相信服务器 2012 页面。下面是截图:

实际的 xml 和 xslt 相当冗长。

我已经以管理员身份重新安装了主机包,以防万一。安装的版本是dotnet-hosting-6.0.0-win.exe。那并没有解决它。 IIS 也在服务器级别停止/启动。

目前似乎缺少 handlerv2?

如果需要任何其他日志或配置,请告诉我

【问题讨论】:

如果是404错误,建议您使用失败请求跟踪查看详细错误信息。 Ty @samwu 现在是周末。周一试试 @samwu 有什么想法吗? 您的应用程序似乎没有问题,尝试运行localhost:5001 以检查它是否有效。 【参考方案1】:

“目前看来 handlerv2 好像丢失了?”不正确。

对 FRT 日志的正确解释是 ASP.NET Core 模块(在您的 web.config 中配置的处理程序)运行良好,并确定没有路由规则为传入 URL http://localhost/ReportGroups 生成结果。因此,它按设计返回 404。

您有责任查看 IIS 配置(站点/应用程序)以及您的路由源代码,以了解用于访问目标页面的正确 URL。除非您分享这些部分,否则有关此问题的讨论无法继续进行。

【讨论】:

很高兴分享它们。假设你能指出“他们”是什么。

以上是关于.NET 6.0 MVC 应用程序在 Windows 10 上的 IIS 中返回 404的主要内容,如果未能解决你的问题,请参考以下文章

[.net 面向对象程序设计深入].NET MVC 6.0 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux)

从 MVC 到使用 ASP.NET Core 6.0 的Minimal API

我应该如何处理 Window Phone / WCF / ASP.NET MVC 应用程序的用户身份?

asp.ner core 6.0路由找不到

IBM Worklight 6.0 - BlackBerry 10 中的 window.open() 失败

6.0以上,SYSTEM_ALERT_WINDOW 权限的问题