我的WCF服务中有一个使用事务的简单方法。
[OperationBehavior(TransactionScopeRequired = true)]
该方法在IIS 7上本地工作,Windows 7完全正常。但是,当使用IIS 6部署到Windows 2003 Server R2时,该方法在使用WCF测试客户端时会失败。
无法调用该服务。可能的原因:服务离线或无法访问;客户端配置与代理不匹配;现有代理无效。有关更多详细信息,请参阅堆栈跟踪。您可以尝试通过启动新代理,还原到默认配置或刷新服务来恢复。
执行此方法调用的事务是异步中止的。 服务器堆栈跟踪: 在System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(消息回复,MessageFault错误,字符串操作,MessageVersion版本,FaultConverter faultConverter) 在System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime操作,ProxyRpc& rpc) 在System.ServiceModel.Channels.ServiceChannel.Call(String action,Boolean oneway,ProxyOperationRuntime operation,Object [] ins,Object [] outs,TimeSpan timeout) 在System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall,ProxyOperationRuntime操作) 在System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage消息) 在[0]处重新抛出异常: 在System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg) 在System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,Int32 type) at INumberGenerationService.GenerateNextNumber(String keyName) 在NumberGenerationServiceClient.GenerateNextNumber(String keyName)
如果我删除了transaction属性,则服务方法在远程服务器上运行正常。 IIS 6是否需要任何配置才能使WCF事务有效?会导致这种行为的原因是什么?
感谢。