0
我有一個WCF服務被配置爲作爲Windows服務運行,但它只適用於我設置InstanceContextMode
爲Single
。當我將其更改爲PerCall
並重新安裝服務它變得無法訪問。運行WCF Windows服務作爲InstanceContextMode.PerCall
有人請澄清,如果我運行WCF服務作爲Windows服務的上下文有被設置爲單一,爲什麼?
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class CateringSSTService : ICateringSSTService
更新:這是託管代碼
private ICateringSSTService _cateringSSTService;
private ServiceHost _serviceHost;
private Task _executionTask;
public CateringSSTServer()
{
}
public void Start()
{
_executionTask = new Task(ManagerStartup);
_executionTask.Start();
}
private void ManagerStartup()
{
try
{
_cateringSSTService = new CateringSSTService();
_serviceHost = new ServiceHost(_cateringSSTService);
_serviceHost.Open();
}
catch (Exception)
{
}
}
public void Stop()
{
try
{
if (_serviceHost != null && _serviceHost.State != CommunicationState.Closed)
{
_serviceHost.Close();
}
}
catch (Exception)
{
throw;
}
}
你如何運行一個WCF服務作爲一個Windows服務?自託管?如果是這樣,代碼在哪裏? – nvoigt 2014-10-08 15:52:24
它託管在Windows 2003服務器上@nvoigt – 2014-10-08 15:54:00
這不是我的意思。你不能只採取這兩條線,並將其作爲Windows服務託管。你的託管代碼在哪裏? – nvoigt 2014-10-08 16:01:32