我有一个在IIS 6上运行的应用程序.所有请求都通过aspnet_isapi.dll.这是通过通配符应用程序映射(未验证文件存在)实现的.
我已将所述应用程序复制到运行IIS7的计算机上,并希望再次使用它.
在应用程序中,任何扩展名为.aspx(或.ashx)的请求都以正常方式处理.具有不同扩展名的其他请求(例如.html和.xml)由自定义http模块处理.有些请求没有扩展名,并且动态地重定向到带扩展名的文件(例如,访问.../item/1可能会重定向到.../item/1.html或.../item/1.xml,具体取决于accept头中的值).
新位置可能不存在,但动态生成响应.
目前,应用程序池处于"经典"模式,并且正在使用.NET v4.0(之前使用的是.NET 3.5,但这似乎与问题无关).自定义http模块仅在web.config中设置.
重定向(从.../item/1到.../item/1.html)似乎有效,这表明应用程序确实正在处理扩展较少的请求(该重定向在应用程序本身中写入).我认为这意味着自定义模块正在运行.
但是,带扩展名的请求(.html,.xml等)失败了.我得到的错误是:
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
Module: IIS Web Core
Notification: MapRequestHandler
Handler: StaticFile
Error Code: 0x80070002
Run Code Online (Sandbox Code Playgroud)
我尝试过:添加一个映射*到aspnet_isapi.dll的通配符脚本映射尝试将*.html的特定映射添加到aspnet_isapi.dll
这些仍然会导致相同的错误消息,并且似乎仍然转到处理程序"StaticFile".
我尝试修改"StaticFile",以便它使用aspnet_isapi.dll可执行文件,这会导致新的错误:
HTTP Error 404.4 - Not Found
The resource you are looking for does not have a handler associated with it.
Handler: Not yet determined
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
Ant*_*ula 11
在集成模式下设置应用程序池,并设置所有请求都运行所有托管模块
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
...
</modules>
...
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8043 次 |
| 最近记录: |