2012-01-16 97 views
0

我有一个传统的肥皂客户端,我需要构建肥皂服务。客户端期望/连接和断开两个SOAPAction。我有一个名为IProto的接口,它具有两个连接和断开连接的功能。问题在于WCF在SOAPAction中预先提供服务合同名称(IProto),并且客户端无法找到期望操作。例如服务SOAPAction IProto/connect和IProto/disconnect以及客户端期望/连接和/断开连接。 有没有办法将服务合同名称设置为空?是否可以将WCF服务合同名称设置为空?

PS。旧版客户端源代码不能更改。

+4

在回答的8个问题中,您已标记为2个答案,尽管您的两个问题每个都收到8个答复。也许你应该考虑回去并给出答案。 – 2012-01-16 15:58:24

+1

将名称设置为“”会抛出异常。我如何将名称设置为“”? – cadrell0 2012-01-16 16:18:05

回答

-1

尝试

[ServiceContract(Namespace = "")] 
public interface IMyServiceContract 
+0

名称空间已空 – Ioannis 2012-01-16 15:19:41

+0

然后将名称设置为空。 – KMan 2012-01-16 15:20:10

+0

设置名称为空抛出异常 – Ioannis 2012-01-16 15:21:10

2

看起来ServiceContract属性有你可以设置来实现这一特性。

[ServiceContract(Name = "***", Namespace = "***")] 
+0

名称在此处不能为空它引发异常 – Ioannis 2012-01-16 15:19:24

+0

我无法在旧客户端中将名称设置为其他名称,并且我无法访问其源代码。它只是期望/连接SOAPAction和我的服务公开IProto/connect – Ioannis 2012-01-16 15:22:14

0

替换默认实现IDispatchOperationSelector

+0

注意:这是执行OperationContract的复杂方式。 – 2012-01-19 17:17:15

3

因此,您不想将ServiceContract名称设置为空,您想更改SOAPAction。提出正确的问题会让您找到解决方案的一半。

查看OperationContract属性的Action成员。

[OperationContract(Action="/connect")] 
相关问题