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 。