2011-08-27 50 views
2

我有WCF服务合同,并使用类接口的参数如下:使用类接口作为WCF服务参数

[ServiceContract(Name = "IFrameworkBaseService", CallbackContract = typeof(IFrameworkBaseServiceCallback))] 
public interface IFrameworkBaseService 
{ 
    [OperationContract] 
    void InitializeConnection(IClientID clientID); 
} 

,但我得到了以下错误:

The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state

任何人都可以帮助我解决这个问题

谢谢 Afshin

+0

添加它什么时候发生错误?你可以发布错误发生的代码吗?这与界面无关 - 出现问题并且通道出现故障。它不能再使用 - 你必须中止频道并打开一个新频道。 – Tim

回答

1

我认为你传递给IClientID的concret对象对服务来说是未知的。 你必须与KnownType -Attribute

[ServiceContract(Name = "IFrameworkBaseService", CallbackContract = typeof(IFrameworkBaseServiceCallback))] 
[KnownType(typeof(MyClientId))] 
public interface IFrameworkBaseService 
{ 
    [OperationContract] 
    void InitializeConnection(IClientID clientID); 
} 
+0

不应该是'[KnownType(typeof(IClientID))]'? – Tim

+0

否 - 你必须添加*所有*你想添加的具体类型 – Carsten

+0

明白了 - 谢谢:) – Tim