C# 为什么WCF web服务不接收客户端负载?

C# 为什么WCF web服务不接收客户端负载?,c#,wcf,C#,Wcf,我继承了一个web服务,它是为接收来自第三方系统“SystemA”的调用而构建的。它是一个POC,可能没有任何活动函数调用它,我怀疑它只是从SoapUI或类似的东西中测试的,而不是从它设计的应用程序中测试的 当系统A被配置为调用它时,会调用服务,但负载(一个复杂类型参数)为null 我在几年前编写了另外两个web服务,它们接受来自系统A的相同函数的相同类型的调用。将系统A指向这些服务中的任何一个都会导致提供参数。契约和wsdl看起来非常相似,我所看到的唯一变化(比如不同的名称空间)似乎在两个有效

我继承了一个web服务,它是为接收来自第三方系统“SystemA”的调用而构建的。它是一个POC,可能没有任何活动函数调用它,我怀疑它只是从SoapUI或类似的东西中测试的,而不是从它设计的应用程序中测试的

当系统A被配置为调用它时,会调用服务,但负载(一个复杂类型参数)为null

我在几年前编写了另外两个web服务,它们接受来自系统A的相同函数的相同类型的调用。将系统A指向这些服务中的任何一个都会导致提供参数。契约和wsdl看起来非常相似,我所看到的唯一变化(比如不同的名称空间)似乎在两个有效的服务之间有所不同

什么会导致web服务在调用中不接收有效负载

相关的,我应该在哪里找到它?参数在系统A调用和web服务代码本身之间被删除。我检查了跟踪日志,但没有发现任何有用的东西

namespace MyNamespace.StandardNoteReceiverService
{
    public class StandardNoteReceiverService : IReceiveNoteService
    {
        public StandardNoteReceiverResponse ReceiveNote(ReceiveNoteData standardNoteReceiverRequest)
        {
            string x = standardNoteReceiverRequest == null ? "NULL" : "ok";
            LoggingLib.Log($"Service called.  Paramter status: {x}");

            return NoteReceiverServiceLayer.ReceiveNote(standardNoteReceiverRequest);
        }
    }
}
哪个实现

namespace MyNamespace.StandardNoteReceiverService 
{
    [ServiceContract]
    public interface IReceiveNoteService 
    {
        [OperationContract]
        StandardNoteReceiverResponse ReceiveNote(ReceiveNoteData standardNoteReceiverRequest);
    }
}

你是如何建立“系统A”的?它是一个WCF Web HTTP服务还是一个古老的soap Web服务?客户端如何调用服务并发送参数?我认为可能是客户端发送的参数格式不正确。在WCF创建的Rest样式服务中,由于参数的格式,使用复杂对象作为参数来传递数据可能并不总是在服务器上接收参数的值。

在WCFSOAPWeb服务中,调用是通过客户端代理完成的,参数是强类型的。如果服务器始终为空,则可能是其他问题造成的。
我建议您创建一个最小的、可生产的示例,这样我就可以尝试提供一个解决方案,而不是在这里对这个问题进行推测。

如果问题仍然存在,请随时通知我。

结果是参数命名问题。一旦我将参数的名称更改为与正在工作的服务使用的名称相同,它就开始接收数据

public class StandardNoteReceiverService : IReceiveNoteService
{
    public StandardNoteReceiverResponse ReceiveNote(ReceiveNoteData NoteData)
    { ...

谢谢你,亚伯拉罕。系统A已下架。它使用.NETWCFSOAP服务。我可以配置它发送到的URL,但完全相同的调用适用于我们构建的另外两个服务,因此格式似乎不是问题。当前路径试图从一个工作服务和交叉手指中拉出。将其标记为一个答案,以帮助遇到类似问题的任何人。嗯,我本来打算这样做的。然后在更新了一些下游代码之后,我重新构建了解决方案,它又回到了同一个问题。回到头巾上!