Asp.net 在IIS7集成模式下执行重写URL的托管模块
在我的ASP.NET应用程序中,我有两个HTTP模块。其中一个用于重写URL,另一个用于特定于应用程序的内容(自定义身份验证等)。URL重写模块针对所有请求执行,而另一个模块仅针对托管文件扩展名(如.aspx)执行 以下是如何在web.config中定义模块(请注意,UrlRewriteModule的前提条件为空。这将导致它对所有请求执行):Asp.net 在IIS7集成模式下执行重写URL的托管模块,asp.net,iis-7,url-rewriting,Asp.net,Iis 7,Url Rewriting,在我的ASP.NET应用程序中,我有两个HTTP模块。其中一个用于重写URL,另一个用于特定于应用程序的内容(自定义身份验证等)。URL重写模块针对所有请求执行,而另一个模块仅针对托管文件扩展名(如.aspx)执行 以下是如何在web.config中定义模块(请注意,UrlRewriteModule的前提条件为空。这将导致它对所有请求执行): 特别是在服务器负载下,我通常更喜欢避免它 那么,有没有一种方法可以让SiteModule在不使用Server.TransferRequest()重写UR
特别是在服务器负载下,我通常更喜欢避免它
那么,有没有一种方法可以让SiteModule在不使用Server.TransferRequest()重写URL时执行?
谢谢 我的IIS 7很脆弱,但在IIS6中,您可能会通过在/p/文件夹上创建一个新的应用程序(即使您不需要它在现实生活中存在)来欺骗它,然后打开通配符映射,以便该路径中的所有请求都进入.Net。在特定子文件夹上使用应用程序的原因是为了避免.Net在静态请求图像和css等内容时的开销。您是否尝试过内置ASP.Net URL路由?如果没有,我建议您检查一下,因为您可以在Global.asax或使用Regex的HTTP模块中完成路由。
<system.webServer>
<modules>
<add name="UrlRewriteModule" type="MySite.UrlRewriteModule" preCondition="" />
<add name="SiteModule" type="MySite.SiteModule" preCondition="managedHandler" />
</modules>
</system.webServer>