我有一個控制檯應用程序作爲WCF服務的託管。現在,我將爲管理目的添加另一個WCf服務。所以,這裏是我的代碼:在一個控制檯應用程序中託管的兩個WCF服務
[ServiceContract]
public interface IServiceAdmin
{
[OperationContract]
int GetCount();
}
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.Single)]
public class ServiceAdmin : IServiceAdmin
{
public int GetCount()
{
// It's just a stub to go on
return 1;
}
}
這裏是App.config
摘錄應用於服務:
<serviceBehaviors>
<behavior name="MyService.ServBehavior">
<dataContractSerializer maxItemsInObjectGraph="2147483646"/>
<serviceMetadata httpGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="MyService.ServBehavior" name="MyService.MyServ">
<endpoint address="MyServ" behaviorConfiguration="" binding="netTcpBinding" contract="MyService.IMyServ" isSystemEndpoint="false" />
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
</service>
<service behaviorConfiguration="MyService.ServBehavior" name="MyService.MyServAdmin">
<endpoint address="MyServ" behaviorConfiguration="" binding="netTcpBinding" contract="MyService.IServiceAdmin" isSystemEndpoint="false" />
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
</service>
,這裏是我如何讓服務啓動:
static void Main(string[] args)
{
ServiceHost myserviceHost = new ServiceHost(typeof(MyServ), new Uri("net.tcp://192.168.1.40:8730/"));
myserviceHost.Open();
ServiceHost myAdminHost = new ServiceHost(typeof(AServiceAdmin), new Uri("net.tcp://192.168.1.40:31337/");
myAdminHost.Open();
Console.ReadLine();
}
的問題是,常規服務工作正常(元數據交換可以提供關於服務方法的信息)和另一項服務(我在開始時提到,管理服務)根本沒有任何作用。 這是它的原因嗎?
在此先感謝!
還回答了在此鏈接: [http://stackoverflow.com/questions/22973816/hosting-two-wcf-services-using-a-single-console-app? noredirect = 1#comment35081482_22973816] [1] [1]:http://stackoverflow.com/questions/22973816/hosting-two-wcf-services-using-a-single-console-app?noredirect = 1#comment35081482_22973816 – AnkitMittal 2014-04-09 21:43:06