我有一個通用的服務,我可以在一個exe文件中託管並從另一個.net應用程序調用,但由於IIS上的Web服務按需加載,因此我無法將其託管在一個Web項目中。在IIS中託管通用服務
有沒有一種方法來調整wcf堆棧來讀取URL(我可以傳遞類型信息)並調用服務?
我試過使用servicefactory,但更多的是注入行爲而不是調用服務。
感謝
我有一個通用的服務,我可以在一個exe文件中託管並從另一個.net應用程序調用,但由於IIS上的Web服務按需加載,因此我無法將其託管在一個Web項目中。在IIS中託管通用服務
有沒有一種方法來調整wcf堆棧來讀取URL(我可以傳遞類型信息)並調用服務?
我試過使用servicefactory,但更多的是注入行爲而不是調用服務。
感謝
OOP(包括類似泛型和接口的東西)和SOA(面向服務的架構)世界幾乎沒有完全匹配。
這可能是其中的一種情況。 WCF系統適用於在客戶端和服務器之間發送消息,因此,它始終約爲和具體的實現; WCF消息不處理接口,並且據我所知,它不能很好地處理泛型。
,如果你認爲WCF的可互操作的性質,尤其如此 - 這畢竟不「只是」一個.NET的技術,而是一個可互操作的SOAP(和REST)棧可以跟那有沒有其他系統關於泛型的線索(是的,那些仍然存在)。
任何你想要在客戶端和服務器之間作爲SOAP消息來回發送的東西必須採用可以用XML模式表達的形式(你的DataContract) - 我不知道你想如何建模XSD中的通用MyType<T>
- 它只是沒有被設計來做到這一點。
因此,儘管我也非常喜歡泛型,但我不認爲它們很適合面向服務的場景。所以我想你必須重新設計你的服務來考慮這一點。
馬克
我不知道你是什麼意思?
我假設你想要的是使用一些機制來爲根據網址點播服務創建一個實例。 。例如,調用http://localhost/Service1將實例化Service1,http://localhost/Service2將實例化Service2等...而不必創建所有這些虛擬目錄。
我從來沒有這樣做過,但應該可以在ASP.NET中使用URL路由。對於如何,你可能需要測試:)
我有什麼好比 公共類MyGenericService服務:ServiceBase {....} 我可以在一個exe託管並從其他應用程序調用它,但不能在IIS承載它使用.svc,因爲它的需求和類型T是未知的。 因此,每個類型T都會有一個單獨的此服務實例。 有沒有什麼方法可以在wcf中讀取url並使用正確類型T調用服務?我可以修改客戶端上的URL來指示類型T. –
2009-10-02 17:05:57