【发布时间】:2019-07-20 06:08:08
【问题描述】:
需要帮助的人!我们有现有的带有 WCF 和 Microsoft 企业库的旧系统 ASP.NET,我是 WCF 的新手。他们有一个像这样的系统生成的服务模型
界面系统生成:
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(ConfigurationName = "IMyService")]
public interface IMyService
类:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public partial class MyService : IMyService
然后他们让我像这样在接口和类下添加一个方法
接口新增方法:
[System.ServiceModel.OperationContractAttribute (Action = "http://tempuri.org/IMyService/DoWork", ReplyAction = "http://tempuri.org/IMyService /DoWorkReponse")]
void DoWork (int param1,int param2);
public void DoWork (int param1,int param2)
{
base.Channel.DoWork (int param1,int param2);
}
在类中添加方法:
Public void DoWork(int param1,int param2)
然后当我尝试像这样调用方法时:
IMyService.DoWork(1,2)
显示如下:
System.ServiceModel.ActionNotSupportedException: '由于 EndpointDispatcher 的 ContractFilter 不匹配,接收方无法处理带有 Action 'http://tempuri.org/IMyService/DoWork' 的消息。这可能是因为合约不匹配(发送方和接收方之间的操作不匹配)或发送方和接收方之间的绑定/安全不匹配。检查发送方和接收方是否具有相同的合同和相同的绑定(包括安全要求,例如消息、传输、无)。'
我错过了什么吗?
【问题讨论】:
-
不知道是不是你的问题,但是当我粘贴你的ReplyAction时,我发现最后一个/和IMyService之间有一个空格,在tempuri.org/IMyService/DoWorkReponse
标签: c# asp.net wcf-data-services