原因:
IIS 早期版本包含通配符 MIME 映射,允许 IIS处理任何文件而无需考虑扩展名。IIS 60 不包含该通配符 MIME映射,不能处理在 IIS 元数据库中的 MimeMap节点以外定义的任何类型的扩展名。
解决方案:
要为特定扩展名定义 MIME 类型,请按照下列步骤 *** 作:
1 打开 IIS Microsoft 管理控制台
(MMC),右键单击本地计算机名称,然后单击“属性”。
2 单击“MIME 类型”。
3 单击“新建”。
4 在“扩展名”框中,键入所需的文件扩展名(例如,pdb)。
5 在“MIME 类型”框中,键入 application/octet-stream。
6 应用新设置。请注意,必须重新启动“万维网发布服务”或等待工作进程循环以使更改生效。在此示例中,IIS现在可以处理带有 pdb 扩展名的文件。 如果希望处理所有文件而不考虑文件扩展名(例如,如果无法预知将处理的所有文件),请按照下列步骤添加通配符映射:
注意:只能在故障排除过程中将通配符映射添加到 IIS MIME映射中,以作为一种临时解决方案。确定缺少 MIME类型是问题的原因后,请删除通配符映射,然后添加需要处理的 MIME类型的特定映射。
1 打开 IIS Microsoft 管理控制台
(MMC),右键单击本地计算机名称,然后单击“属性”。
2 单击“MIME 类型”。
3 单击“新建”。
4 在“扩展名”框中,键入星号 ()。
5 在“MIME 类型”框中,键入 application/octet-stream。
6 应用新设置。必须重新启动“万维网发布服务”或等待工作进程循环以使更改生效。
这个问题的特征可以用一个字形容:怪。
这个问题的主题:Blog应用程序引起的IIS 6应用程序池崩溃。
问题的主要现象:
当把新版的Blog程序投入到正式运行环境中后,一开始运行正常,过几分钟后,打开页面速度就变得很慢,浏览器一直处于请求状态(浏览器右上角的图标一直在忙碌),却得不到服务器的正常响应,我的理解就是IIS虽然接受了请求,但应用程序池中的程序却不能对请求作出响应,从而让浏览器在苦苦等待。这时,CPU占用却很少,系统事件日志中会出现这样的警告:
A process serving application pool 'AppPool_CNBlogs_New' failed to respond to a ping The process id was '3844'
我把这样的现象描述为:应用程序池崩溃。
当应用程序池崩溃时,运行于内核模式的>
你是不是用了url重写做成伪静态?
如果你是用FRAMEWORK2。0的话要在IIS中点击网站右键属性->主目录->配置->通配符应用程序映射那里插入C:\WINDOWS\MicrosoftNET\Framework\v2050727\aspnet_isapidll
把确认文件是否存的的勾去掉
URL静态化?是将ASPX变成后缀为html么?
URL重写:
(一)、扩展名不变的重写:
重写规则:
<add name="RewritePhoto" virtualUrl="^~/(\d+)aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/DefaultaspxID=$1"
ignoreCase="true" />
IIS配置:(此配置应该为默认配置,但有的虚拟主机提供商修改了此配置)
网站->属性->目录->配置(G)->映射->应用程序扩展->扩展名 aspx ->编辑->"确认文件是否存在"复选框不选
(二)、伪静态重写,扩展名为html等
重写规则:
<add name="RewritePhoto" virtualUrl="^~/(\d+)html"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/DefaultaspxID=$1"
ignoreCase="true" />
IIS配置:网站->属性->目录->配置(G)->映射->应用程序扩展->添加
可执行文件:c:\windows\microsoftnet\framework\v2050727\aspnet_isapidll
扩展名:html
动作:限制为 GET,HEAD,POST,DEBUG
脚本引擎:选中
确认文件是否存在:不选
(三)、任意扩展名的重写 如:扩展名为zxjay
重写规则:
<add name="Rewrite1" virtualUrl="^~/(\d+)zxjay"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/DefaultaspxID=$1"
ignoreCase="true" />
IIS配置:同上
(四)、无后缀的重写
重写规则:
<add name="Rewrite1" virtualUrl="^~/(\d+)/Defaultaspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/DefaultaspxID=$1"
ignoreCase="true" />
IIS配置:网站->属性->目录->配置(G)->映射->通配符应用程序映射->插入
可执行文件:c:\windows\microsoftnet\framework\v2050727\aspnet_isapidll
确认文件是否存在:不选
要设置iis,因为html默认是不走aspnet处理流程的,iis直接判断html文件有无,所以配置iis处理所有请求。
在iis的“通配符应用程序映射”中插入一个映射,可执行文件交给NET的“aspnet_isapidll”,默认地址一般在“C:\WINDOWS\MicrosoftNET\Framework\v2050727\aspnet_isapidll”,不判断文件是否存在
先发布出来到一个文件夹里,右击IIS里的网站,新建-网站,描述可以自己取,网站IP地址,这里你选成你的局域网IP,端口可以自己填一个,不要用80,主机头不用填,路径选到你发布的那个文件夹,权限勾上读取,运行脚本,浏览,完成,然后选你建的那个网站,右击,属性-主目录-配置,应用程序扩展里找到aspnet_isapidll的那个目录,复制下来,然后通配符应用程序映射里点插入,把刚复制下一的路径黏贴到可执行文件中,去掉确认文件是否存在的勾,确定,然后ASPNET里面的版本你选你开发所用的版本,就是framework35(vs2008)的就用选2050727,vs2005就选这个上面的那个,确定,如果没有其他的就不用选了,再选到你建的那个网站,右边会出现里面的文件,找到你的主页,右击,浏览,然后d出的浏览器里把地址复制下来发给别人就行了,这样局域网就可以访问了,但要保证你的局域网中别人能ping通你的电脑,你说cs可以直接连,应该是没问题的了
首先对iis进行配置,添加aspnet_isapi的应用程序通配符映射,使每次请求都托管给aspnet_isapi,这时才能确保对rar之类的文件的请求可以由程序来处理
第2步是webconfig中实现一个自己写的>
>
网页URL生成规则改变、网页文件更名或移动位置、导入链接拼写错误等,导致原来的URL地址无法访问;当Web 服务器接到类似请求时,会返回一个404 状态码,告诉浏览器要请求的资源并不存在。解决方法如下:
1选择站点-》IIS-》处理程序映射-》添加脚本映射(对应扩展名)。
2选择站点-》IIS-》处理程序映射-》添加通配符脚本映射(对应扩展名)。
3、如果在应用程序池选了32位支持,那就按上面的把32位的isapi再配置一遍就可以了。
以上就是关于HTTP 错误 404 - 找不到文件或目录全部的内容,包括:HTTP 错误 404 - 找不到文件或目录、为什么应用程序池总是崩溃、ASP.NET做的网站本地测试正常,上传后台生成静态是出错,返回如下,求帮助!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)