IIS 不提供某些文件扩展名

Ale*_*ekc 2 iis

我在 Win 2k3 服务器和 IIS 上遇到了这个奇怪的问题:

Iis 有多个站点,在其中一个站点中,我需要创建一个子目录并将其设置为 Web 应用程序。我注意到,如果我创建新目录并将一些 .js/.txt 文件放入其中,iis 将不会为它们提供服务(IE 给出错误 Internet Explorer 无法显示网页)。

如果我将相同的文件放在另一个旧站点的子目录中,它将正确显示。

通过嗅探流量,我看到 iis 回复连接状态 200,然后完全丢弃任何连接

http://domain.com/test2/prova.txt

GET /test2/prova.txt HTTP/1.1
Host: domain.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive

HTTP/1.x 200 OK
Run Code Online (Sandbox Code Playgroud)

如果我在 prova.asp 中重命名文件 prova.txt 例如它显示没有问题所以它不应该是权限问题。

在进行了一些研究后,我发现它可能是由缺少 mime 类型引起的,我检查了 .txt 和 .js 存在并由 aspnet_isapi.dll 提供服务。还有另一个奇怪的事情:如果我从目录的属性中删除 mime 映射,它会正确地提供服务,但同样的事情不适用于 js。

我真的开始没有想法了,有没有人有一些提示?

提前致谢。

Eri*_*ken 8

我有同样的问题。IIS 执行称为 MIME 类型过滤的操作。如果它不知道特定文件扩展名的 MIME 类型,则会返回 404 错误。

在 IIS <7: 打开站点(或服务器)属性。单击HTTP 标头选项卡。单击MIME 类型按钮。添加文件类型 * 和 MIME 类型“application/octet-stream”。

对于 IIS 7+: 打开 IIS 管理器。单击服务器或网站。双击MIME 类型功能图标。在操作窗格中,单击添加。用 * 填充“文件扩展名”框,用“应用程序/八位字节流”填充 MIME 类型框。

如果您正在创建 .NET 应用程序,也可以在您的 web.config 文件中完成相同的操作。