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