【发布时间】:2019-02-23 14:24:24
【问题描述】:
我创建了一个具有 2 个异步操作的 WCF 服务。 WCFTestClient 返回错误:
WCF 测试客户端不支持该操作,因为它使用类型 SendCreditTransferRequest。
我不明白 ProcessingFault 操作是否有效,而另一个 (SendCreditTransferRequest) 为什么无效。
我的.svc 代码:
namespace SimulatorServices
{
public class RealTimePortType : IRealTimePortType
{
public void SendCreditTransferRequest(SendCreditTransferRequest request)
{
throw new NotImplementedException();
}
public void ProcessingFault(ProcessingFault1 request)
{
throw new NotImplementedException();
}
}
}
我的.svc.cs 代码:
namespace SimulatorServices
{
[ServiceContract]
public interface IRealTimePortType
{
[System.ServiceModel.OperationContractAttribute(IsOneWay = true, Action = "http://realtime247.eu/realtime247/SendCreditTransferRequest")]
[System.ServiceModel.XmlSerializerFormatAttribute()]
void SendCreditTransferRequest(SendCreditTransferRequest request);
[System.ServiceModel.OperationContractAttribute(IsOneWay = true, Action = "http://realtime247.eu/realtime247/ProcessingFault")]
[System.ServiceModel.XmlSerializerFormatAttribute()]
void ProcessingFault(ProcessingFault1 request);
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
[System.ServiceModel.MessageContractAttribute(IsWrapped = false)]
[KnownType(typeof(TransactionHeader))]
[KnownType(typeof(Document))]
public partial class SendCreditTransferRequest
{
[System.ServiceModel.MessageHeaderAttribute(Namespace = "urn:eu:nets:realtime247:ri.2015.10.14")]
public TransactionHeader TransactionHeader;
[System.ServiceModel.MessageBodyMemberAttribute(Name = "SendCreditTransferRequest", Namespace = "urn:eu:nets:realtime247:ri.2015.10.14", Order = 0)]
public Document SendCreditTransferRequest1;
public SendCreditTransferRequest()
{
}
public SendCreditTransferRequest(TransactionHeader TransactionHeader, Document SendCreditTransferRequest1)
{
this.TransactionHeader = TransactionHeader;
this.SendCreditTransferRequest1 = SendCreditTransferRequest1;
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
[System.ServiceModel.MessageContractAttribute(IsWrapped = false)]
[KnownType(typeof(TransactionHeader))]
[KnownType(typeof(ProcessingFault))]
public partial class ProcessingFault1
{
[System.ServiceModel.MessageHeaderAttribute(Namespace = "urn:eu:nets:realtime247:ri.2015.10.14")]
public TransactionHeader TransactionHeader;
[System.ServiceModel.MessageBodyMemberAttribute(Namespace = "urn:eu:nets:realtime247:ri.2015.10.14", Order = 0)]
public ProcessingFault ProcessingFault;
public ProcessingFault1()
{
}
public ProcessingFault1(TransactionHeader TransactionHeader, ProcessingFault ProcessingFault)
{
this.TransactionHeader = TransactionHeader;
this.ProcessingFault = ProcessingFault;
}
}
}
抱歉,我没有复制我创建的所有类...
【问题讨论】:
-
如何定义 SendCreditTransferRequest 类?您的定义中可能有一些不受支持的类型。此外,我建议您尝试在实际的控制台应用程序中测试服务(添加服务引用)而不是 WCFTestclient.stackoverflow.com/questions/9846746/…stackoverflow.com/questions/10088252/…
-
@Abraham 谢谢!我找到了问题的根源。
标签: c# wcf wcftestclient