.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 应用程序的用户身份?