繁体   English   中英

IIS 显示 404 但文件存在

[英]IIS shows 404 but file exists

我的应用在 VPS 上运行后出现问题。

我在 VPS 上安装了 IIS,删除了 DefaultWebsite,并添加了另一个。 一切看起来都很好,网站启动了,但我无法访问ContentScriptsTemplates等文件夹中的任何文件。 这意味着我没有任何图片,并且我的网站上没有 styles。

我尝试为 IIS_IUSRS 授予权限,但文件仍然无法正确显示。 网站与系统位于同一分区上,我认为这是问题所在,但我无法移动它。 我只有一个分区:-(有什么解决方案吗?

以上都不适合我。 什么起作用(我记得很久以前)是缺少 MIME 类型映射使 IIS 感到困惑。 如果您可以将不同类型的文件放在不同的文件夹中,这很容易诊断为问题。

简单的修复是 IIS 下的“MIME 类型”部分,无论是在服务器、网站还是虚拟文件夹上。 只需添加“*.foo”和“application/octet-stream”作为 MIME 类型,表示“已经发送字节!”

请在 IIS 中检查用户。 站点 -> 基本设置 -> 连接为...(如果我没记错的话)

默认情况下,IIS 中的用户是 IUSR。 您必须更改为 IIS_IUSRS。 然后您的权限将起作用。

这篇文章可以帮到你

您需要添加一个web.config文件来为每个包含以下内容的静态文件的文件夹中的静态文件提供服务:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>
        <staticContent>
            <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
        </staticContent>
        <handlers accessPolicy="Script,Read">
            <!-- For any request to a file exists on disk, return it via native http module. AccessPolicy="Script" above is to allow for a managed 404 page. -->
            <add name="StaticFile" path="*" verb="*" modules="StaticFileModule" preCondition="integratedMode" resourceType="File" requireAccess="Read" />
        </handlers>
    </system.webServer>
</configuration>

我还添加了此代码以使应用程序运行。 没有它应用程序不起作用,但文件显示正确:-(

<system.webServer>
   <validation validateIntegratedModeConfiguration="false"/>
    <handlers>
   <remove name="BlockViewHandler"/>
     <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>
    </handlers>
    </system.webServer>

就我而言,我有一个带有扩展cache的文件 - IIS 中未知的 MIME 类型。

通过更新站点 web.config 为文件扩展cache添加 mimeMap 解决了我的 404 file not found 问题,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <directoryBrowse enabled="true" />
        <security>
            <requestFiltering>
                <fileExtensions>
                    <remove fileExtension=".config" />
                    <add fileExtension=".config" allowed="true" />
                    <add fileExtension=".dll" allowed="true" />
                    <add fileExtension=".exe" allowed="true" />
                </fileExtensions>
            </requestFiltering>
        </security>
        <handlers accessPolicy="Read, Script" />
        <staticContent>
            <mimeMap fileExtension=".cache" mimeType="text/plain" />
        </staticContent>
    </system.webServer>
</configuration>

有关添加静态内容 MIME 映射404 故障排除的更多信息

可能不是一个常见问题,但我不小心创建了一个带有默认页面路径的虚拟目录,这把事情搞砸了。 我不得不打开 applicationhost.config 文件,并删除虚拟目录(好吧,可能可以通过其他方式删除它,但直到我打开文件才弄清楚,因为我已经打开了它,我去了并保存更改)。

我也遇到了这个问题,原来是文件路径问题。

我试图以“C:\folder\file”的形式访问路径

当我尝试以“\file”的形式访问它时,它起作用了,所以它就像“(你的服务器)\file”

不是“(您的服务器)C:\folder\file”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM