IIS显示404,但文件存在

xhv8bpkk  于 2022-11-12  发布在  其他
关注(0)|答案(7)|浏览(294)

在VPS上运行后,我的应用程序出现了问题。
我在VPS上安装了IIS,删除了DefaultWebsite,并添加了另一个。一切看起来都很好,网站启动,但我无法访问任何文件夹中的文件,如 * 内容 脚本 模板 * 等。这意味着我没有任何图片,我的网站上的样式。
我尝试为IIS_IUSRS授予权限,但文件仍然无法正确显示。网站与系统在同一分区上,我认为这就是问题所在,但我无法移动它。我只有一个分区:-(任何解决方案?

tp5buhyn

tp5buhyn1#

以上都不适合我。真正有效的(我记得很久以前)是缺少MIME类型Map使IIS混乱。如果你能将不同类型的文件放在不同的文件夹中,这很容易诊断为问题。
简单的修复是IIS下的“MIME类型”部分,无论是在服务器上,网站上,还是虚拟文件夹上。只需添加“*.foo”和“application/octet-stream”作为MIME类型,即“已经发送字节!”

w6mmgewl

w6mmgewl2#

请检查IIS中的用户。站点-〉基本设置-〉连接身份...(如果我没记错的话)
默认情况下,IIS中的用户是IUSR。您必须更改为IIS_IUSRS。然后您的权限才能生效。
This Article could help you

o4hqfura

o4hqfura3#

您需要添加一个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>
g6baxovj

g6baxovj4#

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

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

t1rydlwq5#

在我的例子中,我有一个扩展名为cache的文件-IIS中的一个未知mime类型。
我的404文件找不到的问题是通过更新网站web.config来解决的,以添加文件扩展名为cache的mimeMap,如下:

<?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>

有关Adding Static Content MIME MappingsTroublshooting a 404的更多信息

bejyjqdl

bejyjqdl6#

这可能不是一个常见的问题,但我不小心创建了一个虚拟目录,其中包含了我的默认页面的路径,这就把事情搞砸了。我不得不打开applicationhost.config文件,并删除了虚拟目录(当然,我也可以用其他方法删除它,但直到我打开了这个文件,我才弄明白,因为我已经打开了它,所以我继续并保存了更改)。

wvmv3b1j

wvmv3b1j7#

我也遇到过这个问题,原来是文件路径问题。
我尝试以“C:\folder\file”的形式访问路径
当我尝试以“\file”访问它时,它工作了,因此它将类似于“(您的服务器)\file”
而不是“(您的服务器)C:\folder\file”

相关问题