我已经设置了一个 IIS 6 服务器作为文件服务器。但是,对于某些文件,客户端会收到 404 错误。
为了诊断问题,我启用了目录浏览。我可以直接浏览到有问题的文件之一,单击该文件,然后获取 404。
该网站配置为基本身份验证。我验证了相关用户在文件系统级别对所需文件具有读取权限。
该文件访问尝试的 IIS 日志条目是:
2009-10-26 23:23:38 W3SVC882002786 192.168.1.10 GET /path/to/myfile.war-0.2.45.M.war - 8889 - 72.162.134.92 Mozilla/5.0+(Windows;+U;+Windows+NT+6.0;+en-US)+AppleWebKit/532.0+(KHTML,+like+Gecko)+Chrome/3.0.195.27+Safari/532.0 401 2 2148074254
2009-10-26 23:23:38 W3SVC882002786 192.168.1.10 GET /path/to/myfile.war-0.2.45.M.war - 8889 - 72.162.134.92 Mozilla/5.0+(Windows;+U;+Windows+NT+6.0;+en-US)+AppleWebKit/532.0+(KHTML,+like+Gecko)+Chrome/3.0.195.27+Safari/532.0 401 1 0
2009-10-26 23:23:38 W3SVC882002786 192.168.1.10 GET /path/to/myfile.war-0.2.45.M.war - 8889 MYDOMAIN\myuser 72.162.134.92 Mozilla/5.0+(Windows;+U;+Windows+NT+6.0;+en-US)+AppleWebKit/532.0+(KHTML,+like+Gecko)+Chrome/3.0.195.27+Safari/532.0 404 3 50
所以看起来有两个 401(拒绝访问),然后是一个 404。
有趣的是,可以访问和下载同一目录中的.jar文件。
我需要在某个地方配置 IIS 以允许下载其他文件类型吗?
可能发生的情况是您的服务器不知道 .war 是一种需要下载而不是执行的文件。然后,它会通过您允许的 Web 服务扩展运行任何匹配项。如果找不到,即使该文件确实存在,它也会抛出 404 错误。
如果您为 application/octet-stream 类型的 war 文件设置 MIME 类型,那应该可以解决您的问题。
看起来您的文件大小超过 2GB,如果我没记错的话,这远远超出了 IIS 允许的大小。您需要编辑 metabase.xml 文件以更改该值。我相信您需要的设置是 AspBufferingLimit,如果您查看它,您应该会看到它设置为 4194304。将其设置为 2560000000 并查看是否可以下载文件。