【问题标题】:ASP.NET MVC: 404 - File or directory not found. The resource you are looking forASP.NET MVC:404 - 找不到文件或目录。您正在寻找的资源
【发布时间】: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 文件夹位于与我正在浏览的机器不同的机器上。

标签: asp.net-mvc iis-7 windows-server-2003


【解决方案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。可能没什么,但值得检查
      猜你喜欢
      • 2011-06-28
      • 1970-01-01
      • 2013-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-02
      相关资源
      最近更新 更多