gpt4 book ai didi

asp.net - Global.asax 不为 IIS7 中的 .aspx 页面触发

转载 作者:行者123 更新时间:2023-12-04 23:32:38 26 4
gpt4 key购买 nike

我们运行一个链接重定向服务,它可以处理以各种格式抛出的链接。其中一种格式是将目标 URL 附加到链接的末尾,例如

http://url.fwd/abcd/http://www.mydomain.com/page.aspx

这在过去两年中一直在 Windows Server 2003/IIS6 机器上运行,但现在我们正试图转移到 Windows Server 2008/IIS7 设置,但它不再工作了。

我已经阅读过有关 URL 中冒号的问题,但它不会影响不以“.aspx”结尾的页面。例如,

http://url.fwd/abcd/http://www.mydomain.com/page.php

会重定向好。

http://url.fwd/abcd/http//www.mydomain.com/page.aspx

也可以正常工作(请注意缺少第二个冒号)。尽管是错误的 URL,但它确实由我们的 URL 转发系统处理,该系统使用自定义 404 页面。在旧系统上,我们也遇到过类似的问题,于是在Global.asax > Application_Error 中专门写了一个方法来处理'.aspx'的情况,效果很好。

在我们的新服务器上,Application_Error 永远不会在 Global.asax 中抛出。相反,我得到一个 System.NotSupportedException -“不支持给定路径的格式”。这个 System.NotSupportedException 正是我们在 Global.asax 页面中处理的情况,所以它绝对不会被触发。

我已经更改了几个论坛帖子中指出的注册表项,
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET VerificationCompatibility=1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP|Parameters AllowRestrictedChars=1

我已尝试更改 .aspx 的处理程序映射设置。

我尝试将应用程序池设置为使用经典模式而不是集成模式,但这会导致完全不同的错误,其中根本不显示图像和 CSS 等静态内容。我已经检查过 Windows 功能中是否启用了静态内容,确实如此。
在经典模式下,'.aspx' 请求会抛出两个错误请求错误,完全没有任何信息。我得到的错误页面的代码是字面意思

错误请求错误请求

更新:我已将静态文件处理程序映射更改为此页面中的表单
http://improve.dk/blog/2006/12/11/making-url-rewriting-on-iis7-work-like-iis6
但是,正如作者正确指出的那样,这是一种 hack,而不是 IIS7 下的正确处理方式。它还只修复了经典模式下的静态文件问题。 '.aspx' 页面在经典模式下仍然会抛出错误。

在这一点上,任何想法或意见将不胜感激。

最佳答案

IIS 7 解决方案

IIS 7 中的简单解决方案是在 web.config 文件中添加一个设置,以告诉 IIS 通过 Global.asax 事件处理所有请求。只需在 web.config 中添加或更改此部分即可启用请求:

<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>

关于asp.net - Global.asax 不为 IIS7 中的 .aspx 页面触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2942797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com