是否有一個.net等價的Java初始化Servlet?是否存在.net等價的Java初始化Servlet?
雖然我們在這,相當於一個過濾器?
最後,如果所說的東西存在(過濾器)可以運行之前/之後請求一個WCF服務?
是否有一個.net等價的Java初始化Servlet?是否存在.net等價的Java初始化Servlet?
雖然我們在這,相當於一個過濾器?
最後,如果所說的東西存在(過濾器)可以運行之前/之後請求一個WCF服務?
While you can use the OnStart event of HttpApplication to intercept when the service starts as well as IHttpModule for intercepting requests,它是不在WCF執行這些攔截的正確方法。
推薦工作的唯一原因是因爲您在IIS中託管並使用IIS特定的掛鉤。但是,WCF服務可以在任何地方託管,並且您可能會發現將服務移動到服務進程以及更改綁定(可能使用net-tcp而不是http,例如,在這種情況下,您將如何閱讀通過IHttpModule實現進來的內容嗎?你不能)這會導致這些鉤子破壞。
也就是說,理想情況下,您將在創建ServiceHost實例之前執行任何類型的初始化。但是,由於您無權訪問IIS中WCF中的ServiceHost實例,因此必須實施自定義ServiceHostFactory和specify that factory in your svc file (see the section titled Using a Custom ServiceHost in IIS or WAS).採用此方法將使其具有可移植性。
至於攔截呼叫,你可以在客戶端和服務端做到這一點。在客戶端,你會實現IClientMessageInspector,並在服務器端你想IDispatchMessageInspector(我想你想要後者)。
爲了在服務端「注入」此檢查器,您必須使用端點行爲(適用於服務上的特定端點,執行IEndpointBehavior)或服務行爲(適用於通過執行IServiceBehavior interface)服務上的所有端點)。
通過這些實現,您可以查看ServiceEndpoint(用於端點行爲)或ServiceDescription類,以應用檢查器的實現或WCF中可用的其他任何鉤子。
您可以通過閱讀Paolo Pialorsi's "Writing a WCF Message Inspector"瞭解如何將這一切結合在一起,並讓您深入瞭解WCF中的自定義行爲。
那麼,我不知道Java框架,但從它的聲音,你可能會尋找Global.asax HttpApplication.Application_OnStart
事件進行初始化。
和過濾器?試試IHttpModule
。
對不起,但-1,因爲這兩個建議在IIS中,根本不可移植,並且如果將服務傳輸到IIS主機之外,將會出現主要問題。在WCF中有這樣做的IIS不可知論的方式。 – casperOne 2010-11-10 13:28:51
我不知道反對票是必要的,但好點。 – 2010-11-10 16:42:59
您是否特別使用WCF?如果是這樣,你使用它進出IIS嗎? – casperOne 2010-11-09 17:07:08
對於這個問題,究竟什麼是Java過濾器? – casperOne 2010-11-09 17:10:27
@casperOne:在IIS中將WCF用於Web服務(服務器Web服務)。你可以將過濾器看作是「攔截器」。一旦向網絡資源發出請求,過濾器就可以預處理(或後處理,或兩者)請求(或響應)。過濾器(綁定中)的一種用法可能是日誌記錄,出站過濾器的一些用途包括添加標頭(認爲no-cache)和壓縮響應(gzip) – iggymoran 2010-11-10 10:32:55