[英]Multiple services on same baseAddress using ninject.extension.wcf selfhost
使用github中的示例,在Windows服務中設置一個簡單的wcf服務可以正常工作。 但是,當我添加另一個servicecontract實現時,無法將其托管在同一baseAddress下,即來自app.config:
<service name="ContractService" behaviorConfiguration="WebServicesBehavior">
<host>
<baseAddresses >
<add baseAddress="baseUri"/>
</baseAddresses>
</host>
<endpoint address="addr1" binding="wsHttpBinding" contract="IContract1"/>
<endpoint address="addr2" binding="wsHttpBinding" contract="IContract2"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
使用此示例,我能夠托管2個服務,但是我希望實現在同一baseAddress和可能的多個端點內托管多個服務協定,但是我對解決方案的搜索使我陷入困境。
此設置有效:
<services>
<service name="ContractService1" behaviorConfiguration="WebServicesBehavior">
<host>
<baseAddresses >
<add baseAddress="http://localhost:8082/Services/"/>
</baseAddresses>
</host>
<endpoint address="addr1" binding="wsHttpBinding" contract="IContract1"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
<service name="ContractService2" behaviorConfiguration="WebServicesBehavior">
<host>
<baseAddresses >
<add baseAddress="http://localhost:8083/Services/"/>
</baseAddresses>
</host>
<endpoint address="addr2" binding="wsHttpBinding" contract="IContract2"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
使用ninject進行的聯結與github示例中的相同。
有沒有辦法使用帶有ninject的selfhost wcf來實現多個端點?
通過為同一端口指定不同的baseAddresses,可以在同一端口上具有多個服務。
將端點定義的地址附加到每個服務的基地址,如下所示:
<add baseAddress="http://localhost:8083/Services/addr1"/>
<endpoint address="" binding="wsHttpBinding" contract="IContract1"/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.