【发布时间】:2019-10-31 14:33:05
【问题描述】:
也许我混淆了一些东西,但我找不到任何关于接收 SOAP 消息的 wcf 服务的重载操作的问题或文档。
目标:我有 3 条 SOAP 消息进入我的 wcf 服务,在同一端点上具有相同的操作名。这是固定的,我无法更改。
我希望以下 wcf 接口可以工作:
[OperationContract(Action = "urn:oasis:names:tc:SPML:2:0:req/active", Name = "addRequest")]
void Add(data data);
[OperationContract(Action = "urn:oasis:names:tc:SPML:2:0:req/active", Name = "modifyRequest")]
void Modify(psoID psoID, modification modification);
[OperationContract(Action = "urn:oasis:names:tc:SPML:2:0:req/active", Name = "deleteRequest")]
void Delete(psoID psoID);
问题:如果我只有一个这样的操作合同,我的服务可以工作,但如果我有多个操作合同,则会弹出以下错误:`
500System.ServiceModel.ServiceActivationException
我相信它不能有多个具有相同操作名称的操作合同。我也相信这应该是可能的,因为我正在替换一个可以处理所有 3 条消息具有相同操作名的肥皂服务。 (wcf 和 soap 不应该相隔那么远?)
我添加了操作名称以解决问题,但没有运气。
如有任何帮助,我们将不胜感激。谢谢!
【问题讨论】:
-
能否请您配置WCF trace log并分享?跟踪日志会说明服务未激活的原因。
-
感谢 wcf 跟踪的提示。它将在将来帮助我进行调试,但问题已得到解答,因此无需提交跟踪
标签: c# wcf operationcontract