IIS不提供某些文件扩展名

Win 2k3服务器和IIS上有这个奇怪的问题:

Iis有几个网站,其中一个我需要创build一个子目录并将其设置为Web应用程序。 我注意到,如果我创build新的目录,并把一些.js / .txt文件,它们不会由iis(IE浏览器给出错误Internet Explorer无法显示网页)。

如果我把相同的文件在另一个旧网站的子目录,它会正确显示。

通过嗅探stream量,我已经看到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 

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

在做了一些研究之后,我发现它可能是由于缺lessmimetypes引起的,我已经签出了.txt和.js,并且由aspnet_isapi.dll提供。 还有另一个奇怪的事情:如果我从目录的属性中删除MIME映射它是正确的服务,但同样的事情不适用于JS。

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

提前致谢。

我有同样的问题。 IIS做一些称为MIMEtypes过滤。 如果它不知道特定文件扩展名的MIMEtypes,则返回404错误。

在IIS上<7:打开站点(或服务器)属性。 点击HTTP-Header选项卡。 点击MIMEtypesbutton。 添加文件types*为MIMEtypes“application / octet-stream”。

对于IIS 7+:打开IISpipe理器。 点击服务器或网站。 双击MIMEtypesfunction图标。 在“操作”窗格中,单击“ 添加” 。 用*和“application / octet-stream”填充“文件扩展名”框。

如果你正在创build一个.NET应用程序,也可以在你的web.config文件中完成。

由于您已经将这些扩展映射到aspnet_isapi.dll,因此您现在需要告诉ASP.NET来处理它们。 你做了正确的IIS部分。

这是一个PageHandlerFactory,你需要在你的httpHandlers中设置。 我发现这个页面覆盖了它的深度: http : //aspnet.4guysfromrolla.com/articles/011404-1.aspx 。