IIS 7.5不会加载静态HTML页面


10

在专用服务器上新安装了IIS 7.5。将ASP.NET 4.0 Web应用程序复制到其文件夹中,在第80条上以其自己的IP创建新网站,IIS_IUSR和IUSR帐户具有对站点文件夹的读取/执行权限,该站点使用4.0 .NET分配给其自己的集成应用程序池(我尝试了经典池,结果相同)。

问题:当我尝试访问此网站时,浏览器仅加载由.NET资源生成的内容,如aspx页面,.axd文件等。静态图像,静态js,css和html文件位于页面源中,但IIS却没有不为他们服务。所有浏览器中的开发工具都抱怨所有这些静态资源都是由服务器以错误的内容类型(纯文本而不是图像,样式等)发送的。我做错了什么?


您在Fiddler(或Firebug)中看到了什么?
SLaks's

如果这有可能在服务器上运行该页面,则特别是单独运行服务器上的静态内容,您将获得完全详细的错误报告。
亚里士多德(Aristos)

我不使用Firebug。但是,例如,Chrome浏览器抱怨页面上有一个jpg文件“资源被解释为图像,但以MIME类型text / plain传输”。所有样式,js和静态html页面均相同。此外,脚本和html的动态加载也不起作用。

// @亚里士多德:我做到了。服务器的浏览器以与外部浏览器相同的方式呈现页面。没有错误,只是页面不完整。

运行Web服务器的用户是否有权读取这些文件?
卢克M

Answers:


12

IIS 7 / 7.5具有新的“功能”-角色服务。rsbarro的帖子提醒我,有一个角色服务负责静态内容。它是Web服务器/通用HTTP功能/静态内容。按照rsbarro的建议检查IIS管理器中是否存在MIME类型图标。

如果没有,则需要安装静态内容角色服务。为此,请选择:

  • 服务器管理器
  • 的角色
  • 左窗格中的“ Web服务器(IIS)”节点
  • 滚动到“角色服务”窗口
  • 查看是否已安装静态内容角色服务。

从您的描述来看,这似乎是您的问题。

通常,如果IIS7没有执行IIS6所做的事情,那么首先要检查的是查看是否安装了对应角色服务。希望这可以帮助。


静态内容角色,我怎么想念它?谢谢,完美地解决了这个问题。
大卫·托马斯·加西亚

6

在IIS下,转到您的网站并检查“ MIME类型”部分(请参见下图)。确保在该列表中看到.js,.css,.html等条目,并且它们具有指定的正确MIME类型。如果指定了MIME类型,则IIS 7.5将仅提供页面。默认情况下,这些扩展名的MIME类型applicationHost.configC:\Windows\system32\inetsrv\config文件夹中的文件中设置(您可能必须以管理员身份运行notepad才能查看该文件)。只需搜索.js,您应该<mimeMap><staticContent>元素下找到一个条目。

iis mime类型

这些设置可以在您的web.config文件中覆盖。如果是,它们将出现在以下位置web.config

<system.webServer>
    <staticContent>
        <remove fileExtension=".js" />
    </staticContent>
</system.webServer>

我肯定会从那里检查开始。如果在MIME类型部分下一切正常,则可能是您的模块干扰了对静态文件的请求(但很可能只有<modules runAllManagedModulesForAllRequests="true" />在您的<system.webServer>部分中进行了设置)。如果是这样的话,我将删除您所有的模块设置web.config,看看是否可以调出静态文件,然后一次读取一个,以查看引起问题的模块。如果您无法弄清楚,那么我建议您在问题中张贴您web.config(或至少是system.weband system.webServer部分)的内容。


2

我遇到了同样的问题,但是我的应用程序池在域帐户下运行,并且该用户有权访问网站文件夹。我的网站呈现aspx,但没有静态内容。解决我的问题的方法是将IIS_IUSRS组添加到名为“身份验证后模拟客户端”的本地安全策略中。IIS_IUSRS组中有我的域帐户。我正在运行IIS 7.5 Windows 2008 Server。


希望我能投票不止一次。我在搜索为什么IIS不提供我的.css文件时遇到了这个问题。它与Windows对其存储文件夹的权限有关。
2b77bee6-5445-4c77-b1eb-4df3e5
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.