我在windows服务中使用wcf库我的wcf libray包含一个包含数据访问层的项目dll。当我尝试启动Windows服务时,我的Windows服务无法启动
例外:
无法启动服务。 System.ServiceModel.FaultException: 服务器无法处理 请求由于内部错误。对于 有关错误的更多信息, 要么打开 IncludeExceptionDetailInFaults(或者 来自ServiceBehaviorAttribute或来自 配置 行为)在服务器上 将异常信息发回 客户端,或按照开启跟踪 Microsoft .NET Framework 3.0 SDK 记录并检查服务器 跟踪日志。
服务器堆栈跟踪:at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(消息 回复,MessageFault错误,字符串 动作,MessageVersion版本, FaultConverter faultConverter)at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime 操作,ProxyRpc& rpc)at System.ServiceModel.Channels.ServiceChannel.Call(字符串 动作,布尔单向, ProxyOperationRuntime操作, Object [] ins,Object [] outs,TimeSpan 超时)at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(...
为此,我们在App Config中使用
我的服务电话是
using (ServiceReference1.Service1Client c = new ServiceReference1.Service1Client())
{
c.GetZvol();
c.ChannelFactory.Close();
c.Close();
}
但是在添加它之后,启动Windows服务时会出现另一个异常
例外:
无法启动服务。 System.ServiceModel.CommunicationObjectFaultedException: 通讯对象, System.ServiceModel.Channels.ServiceChannel, 不能用于沟通 因为它处于Faulted状态。
服务器堆栈跟踪:at System.ServiceModel.Channels.CommunicationObject.Close(时间跨度 超时)
在[0]处重新抛出异常:at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(即时聊天 reqMsg,IMessage retMsg)at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&安培; msgData,Int32类型)at System.ServiceModel.ICommunicationObject.Close(时间跨度 超时)at System.ServiceModel.ClientBase
1.System.ServiceModel.ICommunicationObject.Close(TimeSpan timeout) at System.ServiceModel.ClientBase
1.关闭() 在 System.ServiceModel.ClientBase`1.System.IDisposable.Dispose() 在ClassDemo.Class1.CreateFile()中 C:\ Users \用户维克拉姆\文件\视觉 工作室 2010 \项目\ mcWindowsService \ ClassDemo \的Class1.cs:行 21点 mcWindowsService.Service1.OnStart(字符串[] args)...
请有人告诉我解决方案
答案 0 :(得分:1)
您无法在同一进程中托管并调用wcf服务。您的Windows服务应该只托管wcf dll,您可以从另一个进程(如winforms应用程序或Web应用程序)调用它。