ASP.NET MVC:404 - 找不到文件或目录。您正在寻找的资源
Posted
技术标签:
【中文标题】ASP.NET MVC:404 - 找不到文件或目录。您正在寻找的资源【英文标题】:ASP.NET MVC: 404 - File or directory not found. The resource you are looking for 【发布时间】:2014-06-08 17:38:18 【问题描述】:我最近在 Win server 2008、IIS 7 机器上部署了一个 ASP.NET MVC 应用程序。它安装了 MVC,并安装了 .NET 框架 4.5。 每当我发布并尝试登录时,都会收到这个烦人的错误:
404 - File or directory not found.
The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.
同时控制器动作 - Home/Login 完好无损,Login.cshtml 页面正常。加 网络配置文件有
模块 runAllManagedModulesForAllRequests="true"/> 编译调试="true" targetFramework="4.5"> 组件> 处理程序> 删除名称="ExtensionlessUrlHandler-ISAPI-4.0_32bit"/> 删除名称="ExtensionlessUrlHandler-ISAPI-4.0_64bit"/> 删除名称="ExtensionlessUrlHandler-Integrated-4.0"/> 添加名称="ExtensionlessUrlHandler-ISAPI-4.0_32bit" 路径="*."动词="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" 模块="IsapiModule" /处理程序>所以我想知道有什么问题。它在集成模式下运行,ASP.NET 4.0 应用程序池。 静态内容和动态内容均已启用。我想您可以看出我已经浏览了有关此问题的大部分帖子。:) 提前感谢您的回答。
【问题讨论】:
您浏览的站点是 IIS 所在的同一台机器吗?另外,这是全新安装的 IIS 吗?您是否在受限环境中工作? 它位于 Intranet 上,而 app 文件夹位于与我正在浏览的机器不同的机器上。 【参考方案1】:我已在 system.webserver 下的 web.config 中添加了以下 MIME 类型,并且它正在工作
<urlCompression doStaticCompression="true" doDynamicCompression="true" />
<httpCompression>
<dynamicTypes>
<clear />
<add enabled="true" mimeType="text/*" />
<add enabled="true" mimeType="message/*" />
<add enabled="true" mimeType="application/x-javascript" />
<add enabled="true" mimeType="application/javascript" />
<add enabled="true" mimeType="application/json" />
<add enabled="false" mimeType="*/*" />
<add enabled="true" mimeType="application/atom+xml" />
<add enabled="true" mimeType="application/atom+xml;charset=utf-8" />
</dynamicTypes>
<staticTypes>
<clear />
<add enabled="true" mimeType="text/*" />
<add enabled="true" mimeType="message/*" />
<add enabled="true" mimeType="application/javascript" />
<add enabled="true" mimeType="application/atom+xml" />
<add enabled="true" mimeType="application/xaml+xml" />
<add enabled="true" mimeType="application/json" />
<add enabled="false" mimeType="*/*" />
</staticTypes>
</httpCompression>
【讨论】:
【参考方案2】:如果您的文件具有非标准扩展名,您可能必须添加 MIME 类型。
公平的选择:
application/octet-stream
text/plain
如果没有关联的 MIME 类型,当您尝试下载文件时,IIS 只会显示 404,您可以在目录列表中清楚地看到该文件。
【讨论】:
【参考方案3】:如果可能,我会登录到托管应用程序的服务器,打开 IIS 管理器,找到您的站点并单击在浏览器中查看。这将确保您的 URL 正确,并且在出现问题时应为您提供更多调试信息。
【讨论】:
谢谢 mmill,我这样做了,发现它加载了第一页,用于登录,但是当我单击登录按钮时,它给了我 404 错误-您正在寻找的资源可能是已删除、更改名称或暂时不可用 - 指的是无扩展名 url 即 \Home\Login ,这应该是登录后的下一篇文章。但就像我之前说的那样,我添加了这个以上是关于ASP.NET MVC:404 - 找不到文件或目录。您正在寻找的资源的主要内容,如果未能解决你的问题,请参考以下文章
ASP.net HTTP 404 - 找不到文件而不是 MaxRequestLength 异常
在 asp.net-mvc 中,查询字符串太长会导致 404 File not found 错误吗?