我覺得我有什麼工作,在IIS7 ...但它似乎有點脆:
我有一個HttpModule,設置這樣的:
<modules runAllManagedModulesForAllRequests="true">
<remove name="ScriptModule" />
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="MyRewriteModule" preCondition="managedHandler" type="MyWeb.MyRewriteModule, MyWeb" />
</modules>
和我模塊的代碼如下:
void context_BeginRequest(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
HttpRequest request = app.Context.Request;
List<string> ignoreExtensions = new List<string>() { "axd", "gif", "ico" };
if(ignoreExtensions.TrueForAll(s => !request.FilePath.ToLower().EndsWith(s)))
app.Context.RewritePath("~/default.aspx", request.Path, request.QueryString.ToString(), true);
}
很明顯,我會緩存和擴大該列表...但總體看來工作。任何人都可以指出任何明顯的缺點?
這是一種工作......但我如何得到任何模塊,以獲取對物理上不存在的文件的請求? – Jonas 2009-06-26 21:34:57