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 ,这应该是登录后的下一篇文章。但就像我之前说的那样,我添加了这个 那这就是为什么我很惊讶它不适用于 MVC 路由。 您使用的是表单还是 Windows 身份验证? 抱歉回复晚了,我正在使用表单认证。 我怀疑问题来自部署在同一默认网站 [端口 80] 上的其他一些应用程序,即 CertSrv、DomainHRA、HCAP、NonDomainHRA、Rpc、RpcWithCert。会不会是这些? 我不这么认为,因为登录页面可以正常工作,但您始终可以通过更改您的 IIS 网站/应用程序以使用不同的端口来测试它。您还说您在 IIS 上指定了 .NET 4.0,但在您的配置文件中说目标框架是 4.5。可能没什么,但值得检查

以上是关于ASP.NET MVC:404 - 找不到文件或目录。您正在寻找的资源的主要内容,如果未能解决你的问题,请参考以下文章

iis6 上的 Asp.net mvc 4:“找不到页面”

自定义 ASP.NET MVC 404 错误页面的路由

ASP.net HTTP 404 - 找不到文件而不是 MaxRequestLength 异常

在 asp.net-mvc 中,查询字符串太长会导致 404 File not found 错误吗?

ASP.NET MVC 5 - (HTTP 错误 404.0 - 未找到)具有长的不存在的 URL

如何显示在 Asp.net MVC 中找不到的图像