服务热线
某用户ASPX站点 在我司虚拟主机提示错误: 某个自定义筛选器或模块(如 URLScan)限制了对该文件的访问。
具体错误如下:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
HTTP 错误 404.0 - Not Found
您要找的资源已被删除、已更名或暂时不可用。
最可能的原因:
- 指定的目录或文件在 Web 服务器上不存在。
- URL 拼写错误。
- 某个自定义筛选器或模块(如 URLScan)限制了对该文件的访问。
可尝试的操作:
- 在 Web 服务器上创建内容。
- 检查浏览器 URL。
- 创建跟踪规则以跟踪此 HTTP 状态代码的失败请求,并查看是哪个模块在调用 SetStatus。有关为失败的请求创建跟踪规则的详细信息,请单击此处。
-
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
检查发现 web.config 里使用了 .html 映射到 ASPX 的伪静态,关键代码如下:
<system.webServer> <validation validateIntegratedModeConfiguration="false" /> <modules runAllManagedModulesForAllRequests="true"> <add type="SPcms.Web.UI.HttpModule, SPcms.Web.UI" name="HttpModule" /> </modules> <defaultDocument> <files> </files> </defaultDocument> <handlers> <remove name="PageHandlerFactory-ISAPI-2.0" /> <add name="jintai" path="*.html" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="File" preCondition="classicMode,runtimeVersionv4.0,bitness32" /> <add name="PageHandlerFactory-ISAPI-2.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> </handlers> </system.webServer>按道理说是应该正常的,MVC已安装。就是无法访问 映射后的 .html 文件。
最后尝试把此虚拟主机的独立进程池从经典模式 改为 集成模式 ,解决了此问题。
