Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docusignapi Docusign侦听器参数Null(开发人员沙盒)_Docusignapi - Fatal编程技术网

Docusignapi Docusign侦听器参数Null(开发人员沙盒)

Docusignapi Docusign侦听器参数Null(开发人员沙盒),docusignapi,Docusignapi,我在C#webservice中创建了一个webmethod,当信封状态发生变化时,它会侦听Docusign调用: [WebMethod] public void DocuSignConnectUpdate(DocuSignEnvelopeInformation DocuSignEnvelopeInformation) { //Check if null if (DocuSignEnvel

我在C#webservice中创建了一个webmethod,当信封状态发生变化时,它会侦听Docusign调用:


[WebMethod]

        public void DocuSignConnectUpdate(DocuSignEnvelopeInformation DocuSignEnvelopeInformation)
        {
            
            //Check if null
            if (DocuSignEnvelopeInformation == null)
            {
                File.WriteAllText("C:\\websites\\DataAPI\\datalog.txt", "Data: " + "Data is null");
            }
            else
            {
                string envelopeId = "";
                try
                {
                    //Write a line in a file
                    File.WriteAllText("C:\\websites\\DataAPI\\datalog.txt", "Data: " + DocuSignEnvelopeInformation.ToString());
     
                    //Get some data out
                    envelopeId = DocuSignEnvelopeInformation.EnvelopeStatus.EnvelopeID;

                    //Write Data to a file
                    File.WriteAllText("C:\\websites\\DataAPI\\innerdatalog.txt", "Data: " + DocuSignEnvelopeInformation.ToString());


                }
                catch (Exception ex)
                {
                    // could not serialize
                    File.WriteAllText("C:\\websites\\DataAPI\\errorlog.txt", "Exception: " + ex.Message);
                    
                    throw new SoapException(ex.Message, SoapException.ClientFaultCode);
                }

                
            }
我遇到的问题是调用docusingenvelopeinformation参数时没有设置,因此代码一直在if==null语句处终止。当我使用SoapUI将信封数据运行到API时,一切都正常工作。如有任何想法,我将不胜感激

编辑:我也想在这里添加界面,因为我原来忘记了

    [ServiceContract(ConfigurationName = "IOperations", Namespace = "https://www.docusign.net/API/3.0")]
    public interface IOperations
    {
        
        [OperationContract(Action = "DocuSignConnectListener/Operations/DocuSignConnectUpdate")]
        [XmlSerializerFormat]
        string DocuSignConnectUpdate(DocuSignEnvelopeInformation DocuSignEnvelopeInformation);
    }


当DocuSign webhook设置为使用
SOAP
模式时,通知将作为SOAP请求发送到服务器(侦听器)

如果关闭SOAP模式,则通知将作为带有XML正文的常规POST请求发送

在你的问题中,你是这么说的

当我使用SoapUI将信封数据运行到API时,一切都正常工作


因此,听起来一切都按设计进行了。

当DocuSign webhook设置为使用
SOAP
模式时,通知将作为SOAP请求发送到服务器(您的侦听器)

如果关闭SOAP模式,则通知将作为带有XML正文的常规POST请求发送

在你的问题中,你是这么说的

当我使用SoapUI将信封数据运行到API时,一切都正常工作


所以听起来好像一切都按设计进行了。

好吧,我终于明白了,原来它不够漂亮,所以我专门添加了一个装饰:

[SoapDocumentMethod("http://tempuri.org/DocuSignConnectUpdate",
            RequestNamespace = "http://tempuri.org",
            ResponseNamespace = "http://tempuri.org",
            Use = System.Web.Services.Description.SoapBindingUse.Literal,
            ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]

在方法上,现在一切都像它所设想的那样工作。现在我看了一下,它变得更有意义了。

好吧,我终于明白了,原来它不够漂亮,所以我特别添加了一个装饰:

[SoapDocumentMethod("http://tempuri.org/DocuSignConnectUpdate",
            RequestNamespace = "http://tempuri.org",
            ResponseNamespace = "http://tempuri.org",
            Use = System.Web.Services.Description.SoapBindingUse.Literal,
            ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]

在方法上,现在一切都像它所设想的那样工作。现在我看了一下,它有了更多的意义。

我同意似乎一切正常,但是当调用来自Docusign时,方法参数没有设置,只有当我通过SoapUI发送时,我才知道为什么。在SOAP模式下,请求是到SOAP服务DocuSignConnectUpdate。以下内容也可能会有所帮助:我编辑了原始文章,以包括界面,因为我原来忘记了。我想这可能也是问题所在,我已经尝试了我能想到的每一种组合。我甚至将其完全重建为一个独立的wcf,但无法使其正常工作,我只是不断收到相同的错误。我有一种感觉,它无法从Docusign序列化输入,但我不知道为什么。不幸的是,我没有任何进一步的想法。另一种配置是使用平台作为服务系统作为中间排队系统。这使您能够在不更改防火墙的情况下从防火墙后面接收通知。谢谢你,Larry,我可能不得不尝试这种方法,我不确定我有什么错,我正在抓取实际的流,输入到服务中的SOAP看起来很好,它只是表现得好像没有设置docusingenvelopeinformation参数变量。我同意似乎一切正常,但是,当调用来自Docusign时,方法参数没有设置,只有当我通过SoapUI发送它时,我不知道为什么。在SOAP模式下,请求是到SOAP服务DocuSignConnectUpdate。以下内容也可能会有所帮助:我编辑了原始文章,以包括界面,因为我原来忘记了。我想这可能也是问题所在,我已经尝试了我能想到的每一种组合。我甚至将其完全重建为一个独立的wcf,但无法使其正常工作,我只是不断收到相同的错误。我有一种感觉,它无法从Docusign序列化输入,但我不知道为什么。不幸的是,我没有任何进一步的想法。另一种配置是使用平台作为服务系统作为中间排队系统。这使您能够在不更改防火墙的情况下从防火墙后面接收通知。谢谢你,拉里,我可能不得不尝试这种方法,我不确定我有什么错,我正在抓取实际的流,输入服务的SOAP看起来很好,它只是表现得好像没有设置docusingEnvelopeInformation参数变量。欢迎使用StackOverflow!请检查(接受)每个问题的最佳答案。非常感谢。欢迎来到StackOverflow!请检查(接受)每个问题的最佳答案。非常感谢。