我在我的IIS中創建了一個默認網站,我在其中創建了一個虛擬目錄「wsdls」。在IIS中的虛擬目錄上使用HTTP模塊
我想收集多少請求觸發到我的虛擬目錄的統計信息。這需要在Web服務器級別收集請求並收集統計信息。 「HTTPModule」是我考慮過的適用於這種情況的衆多解決方案之一。因此我已經開始建設一個。
爲了測試目的,我想創建一個HTTP模塊並將其應用於特定的擴展文件(如* .wsdl)以及此虛擬目錄中的任何.wsdl文件的每個GET請求,我都希望重定向申請到「www.google.com」。這將演示HTTP模塊如何在IIS上使用和部署的一個很好的例子。
的HttpModule這是使用Visual Studio編寫如下所示,
namespace Handler.App_Code
{
public class HelloWorldModule : IHttpModule
{
public HelloWorldModule(){
}
public String ModuleName{
get { return "HelloWorldModule"; }
}
// In the Init function, register for HttpApplication
// events by adding your handlers.
public void Init(HttpApplication application){
application.BeginRequest +=
(new EventHandler(this.Application_BeginRequest));
application.EndRequest +=
(new EventHandler(this.Application_EndRequest));
}
private void Application_BeginRequest(Object source,
EventArgs e)
{
// Create HttpApplication and HttpContext objects to access
// request and response properties.
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
context.Response.Redirect("www.google.com");
}
private void Application_EndRequest(Object source, EventArgs e)
{
//Nothing to be done here
}
public void Dispose() { }
}
}
現在我已經做了這個項目針對x64版本的構建和我能夠瀏覽器成功的「DLL」文件。現在我必須在IIS中註冊此dll,並且每當我嘗試訪問* .wsdl文件時,請求都會自動轉到「www.google.com」。這裏是下一個步驟我都做了,
然後我啓用了處理器映射,如下圖所示,
我假定這就是它!沒有更多的事情要做。我應該能夠攔截所有形式爲「* .wsdl」的HTTP請求的請求。這意味着每當我從服務器訪問任何wsdl時,控制應該回到谷歌(因爲寫入開始請求的邏輯)。但不幸的是,我未能實現它。這裏可以做些什麼?
如果我是你,我會使用IIS日誌文件來獲得命中數而不是寫模塊。 –
我的要求是攔截每個請求並將請求詳細信息發佈到另一個收集信息並將其放入數據庫的應用程序。其中一種方法是使用HTTP模塊,我不想讓整個要求複雜化。我正在繼續處理它,並且在通過IIS應用HTTP模塊時遇到問題,這就是本文的原因。從我的角度來看,「點擊次數」可能只是一個例子,但是要求使用IIS上的「HTTP模塊」。 –