如果在IIS7或WPAS中託管我的WCF服務,是否可以將兩個或更多服務加載到同一個AppDomain中,以便它們可以共享靜態變量?IIS7/WPAS:同一AppDomain中的多個WCF服務?
4
A
回答
5
確定您可以根據需要(甚至是不同的WCF服務)在Web應用程序內公開儘可能多的端點。這不應限於IIS或WPAS。
這樣做將使您能夠訪問任何種類的共享數據。儘管我通常會建議不要使用靜態變量來共享信息(但我當然不知道你的要求)。
2
當然。在Visual Studio中,只需添加另一個WCF服務項目。 IIS將在同一個AppDomain中運行這兩個服務。在這個例子中,我首先創建一個圖書館,只有下面的接口定義:
namespace ServiceInterface
{
[ServiceContract]
public interface IClass
{
[OperationContract]
string GetMessage();
}
}
然後我創建了一個VS Web應用程序,並添加兩個服務:MyService
和Service2
這都實現IClass
。這是serviceModel
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="WebService1.MyServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
<behavior name="WebService1.Service2Behavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="WebService1.MyServiceBehavior"
name="WebService1.MyService">
<endpoint address="" binding="wsHttpBinding" contract="ServiceInterface.IClass">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
<service behaviorConfiguration="WebService1.Service2Behavior"
name="WebService1.Service2">
<endpoint address="" binding="wsHttpBinding" contract="ServiceInterface.IClass">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
在客戶端應用程序我的web.config文件部分,你的配置信息可能看起來像:
<client>
<endpoint address="http://mymachinename.local/MyService.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IClass"
contract="ServiceReference1.IClass" name="WSHttpBinding_IClass">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="http://mymachinename.local/Service2.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IClass1"
contract="ServiceReference2.IClass" name="WSHttpBinding_IClass1">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>
0
是的,你可以在IIS和WPAS都做到這一點。但這樣做的唯一方法是在同一個程序集AFAIK中編譯這兩個服務。
相關問題
- 1. wcf決定:一個服務多個合同或許多服務
- 2. WCF多個服務合同
- 3. WCF一個服務或多個服務
- 4. 防止WCF服務的AppDomain被卸載
- 5. 如何在不同的AppDomain中運行多個服務實例?
- 6. 來自同一WCF服務主機中不同服務的多個端點
- 7. 實現相同服務合同接口的多個WCF服務
- 8. 相同服務和合同類型的多個WCF服務
- 9. WCF服務AppDomain詳細信息
- 10. 在一個WCF服務中託管多個合同
- 11. 多個WCF服務
- 12. 使用多個WCF服務合同
- 13. wcf類執行多個服務合同
- 14. WCF服務 - 多個合同執行
- 15. 同一個WCF服務的多個實例?
- 16. 在同一編排中使用多個WCF服務
- 17. 從多個託管服務器調用相同的WCF服務
- 18. 一個WCF服務
- 19. WCF中的相同服務的多重服務行爲
- 20. 如何維護同一wcf服務的多個版本
- 21. 多個Windows服務使用相同的wcf與多個端點?
- 22. 主機MVC和WCF在同一個appDomain中
- 23. 是一個WCF服務的Web服務?
- 24. 在Web應用程序的AppDomain中使用Ninject和WCF服務?
- 25. IIS中的多個wcf服務
- 26. WCF服務中的多個參數json
- 27. WCF服務無法在同一臺機器上調用另一個WCF服務
- 28. WCF 4.5 - 多個Web服務
- 29. 部署多個WCF服務?
- 30. 多個WCF服務引用