2014-09-03 2 views
0

DocuSign Connect 서비스와 통합하려고합니다. 이 문제를 처리하기 위해 WCF 서비스를 설정했지만 지금까지 DocuSignEnvelopeInformation 개체를 제대로 수신하지 못했습니다.받은 DocuSignEnvelopeInformation 개체가 내 WCF에서 null 인 이유는 무엇입니까?

마크 베일리가 12 월에 게시 한 문제와 관련이 있다고 생각합니다. Why is my WCF web service presenting this object in a different namespace with different field names?. 그러나 내 코드에서 볼 수 있듯이 인터페이스에서 [XmlSerializerFormat]을 사용하여 DocuSignConnectUpdate 메서드를 이미 표시했습니다. 내가 놓친 다른 것이 있습니까?

내 인터페이스 :

<ServiceContract(Namespace:="http://www.docusign.net/API/3.0")> 
Public Interface IDSConnectService 
    <OperationContract()> 
    <XmlSerializerFormat()> 
    Function DocuSignConnectUpdate(ByVal DocuSignEnvelopeInformation As DocuSignEnvelopeInformation)As String 
End Interface 

나의 등급 :

<AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)> 
<ServiceBehavior(AddressFilterMode:=AddressFilterMode.Any, Namespace:="http://www.docusign.net/API/3.0")> 
Public Class DSConnectService 
    Implements IDSConnectService 

Public Function DocuSignConnectUpdate(ByVal DocuSignEnvelopeInformation As DocuSignEnvelopeInformation) As String Implements IDSConnectService.DocuSignConnectUpdate 

    If Not DocuSignEnvelopeInformation Is Nothing Then 
     ........... 
     Return DocuSignEnvelopeInformation.EnvelopeStatus.EnvelopeID 
    Else 
     Return "No Envelope Information Received" 
    End If 
End Function 

DocuSignConnectUpdate 항상 DocuSign의 연결 서비스를 통해 EnvelopeInformation 게시 (그러나 때 내 로컬 테스트를 위해 잘 작동 "아니 봉투 정보가 수신"를 반환 고객).

내 Web.config의 설정 :

...... 
<system.serviceModel> 
<services> 
    <service name="MyService.DSConnectService" behaviorConfiguration="MyBehavior" > 
    <endpoint address="" 
       binding="basicHttpBinding" 
       contract="MyService.IDSConnectService"/> 
    <endpoint address="mex" 
       binding="mexHttpBinding" 
       contract="IMetadataExchange" /> 
    </service> 
</services> 
<behaviors> 
    <endpointBehaviors> 
    <behavior name="xmlEndpointBehavior"> 
     <webHttp helpEnabled="true" /> 
    </behavior> 
    </endpointBehaviors> 
    <serviceBehaviors> 
    <behavior name="MyBehavior"> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="false" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<bindings> 
    <basicHttpBinding> 
    <binding name="" closeTimeout="00:01:00" openTimeout="00:01:00" 
     receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" 
     bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" 
     maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" 
     textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true" 
     messageEncoding="Text"> 
     <readerQuotas maxDepth="2000000" maxStringContentLength="2147483647" 
     maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
    </binding> 
    </basicHttpBinding> 
</bindings> 
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" /> 
</system.serviceModel> 
<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer> 

편집 : 여기 는 DocuSign의 내 테스트 클라이언트로 전송되는 XML의 예는 (필자는 연결 로그에서 XML을 복사에 사용 내 고객 요청).

<?xml version="1.0" encoding="UTF-8"?> 
<DocuSignEnvelopeInformation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.docusign.net/API/3.0"> 
    <EnvelopeStatus> 
    <RecipientStatuses> 
     <RecipientStatus> 
     <Type>Signer</Type> 
     <Email>[email protected]</Email> 
     <UserName>Producer Name</UserName> 
     <RoutingOrder>1</RoutingOrder> 
     <Sent>2014-09-04T09:51:52.107</Sent> 
     <Delivered>2014-09-04T09:55:26.62</Delivered> 
     <Signed>2014-09-04T09:55:26.62</Signed> 
     <DeclineReason xsi:nil="true"/> 
     <Status>Completed</Status> 
     <RecipientIPAddress>255.255.255.255</RecipientIPAddress> 
     <ClientUserId>99</ClientUserId> 
     <CustomFields/> 
     <AccountStatus>Active</AccountStatus> 
     <RecipientId>276567ad-763a-45e5-a5b2-38572dfa6bb8</RecipientId> 
     </RecipientStatus> 
    </RecipientStatuses> 
    <TimeGenerated>2014-09-04T09:55:46.5725646</TimeGenerated> 
    <EnvelopeID>01f83c1a-135f-438f-87cc-57ce74aba050</EnvelopeID> 
    <Subject>Russell Test Signing your Application</Subject> 
    <UserName>Russell Test</UserName> 
    <Email>[email protected]</Email> 
    <Status>Completed</Status> 
    <Created>2014-09-04T09:51:51.793</Created> 
    <Sent>2014-09-04T09:51:52.153</Sent> 
    <Delivered>2014-09-04T09:55:26.683</Delivered> 
    <Signed>2014-09-04T09:55:26.683</Signed> 
    <Completed>2014-09-04T09:55:26.683</Completed> 
    <ACStatus>Original</ACStatus> 
    <ACStatusDate>2014-09-04T09:51:51.793</ACStatusDate> 
    <ACHolder>Russell Test</ACHolder> 
    <ACHolderEmail>[email protected]</ACHolderEmail> 
    <ACHolderLocation>DocuSign</ACHolderLocation> 
    <SigningLocation>Online</SigningLocation> 
    <SenderIPAddress>255.255.255.255 </SenderIPAddress> 
    <EnvelopePDFHash/> 
    <CustomFields> 
    </CustomFields> 
    <AutoNavigation>true</AutoNavigation> 
    <EnvelopeIdStamping>true</EnvelopeIdStamping> 
    <AuthoritativeCopy>false</AuthoritativeCopy> 
    <DocumentStatuses> 
     <DocumentStatus> 
     <ID>1</ID> 
     <Name>TestForm1</Name> 
     <TemplateName/> 
     <Sequence>1</Sequence> 
     </DocumentStatus> 
     <DocumentStatus> 
     <ID>2</ID> 
     <Name>TestForm2</Name> 
     <TemplateName/> 
     <Sequence>2</Sequence> 
     </DocumentStatus> 
     <DocumentStatus> 
     <ID>3</ID> 
     <Name>TestForm3</Name> 
     <TemplateName/> 
     <Sequence>3</Sequence> 
     </DocumentStatus> 
     <DocumentStatus> 
     <ID>4</ID> 
     <Name>Signed-on-Paper_276567ad-763a-45e5-a5b2-38572dfa6bb8</Name> 
     <TemplateName/> 
     <Sequence>4</Sequence> 
     </DocumentStatus> 
    </DocumentStatuses> 
    </EnvelopeStatus> 
</DocuSignEnvelopeInformation> 

의견이 있으십니까?

+0

DocuSign의 XML이 푸시되고 있습니까? 둘 다 게시 할 수 있습니까? – Andrew

+0

@AndrewWilson XML에 차이가 없습니다. 테스트 클라이언트에 사용한 XML이 DocuSign 연결 로그에서 가져온 것입니다. 동일 (XML Appende 디). – Russell

+0

두 가지 모두에 대해 .net에 들어오는 입력을 게시하십시오. 두 사람이 동일하다면 그들은 모두 일할 것입니다. (연결 로그가 아님) – Andrew

답변

0

your_descriptor는 모든 서비스 또는 더 구체적으로 일반적인 것이 될 수있는 다음 데코레이터를 사용해보십시오.

에 http : // your_domain 형식/your_descriptor ")> 공공 인터페이스 IDSConnectService

[OperationContract(Action = "http://your_domain/your_descriptor/DocuSignConnectUpdate", 
    ReplyAction = "http://your_domain/your_descriptor/DocuSignConnectUpdateResponse" 
    )] 
Function DocuSignConnectUpdate(ByVal DocuSignEnvelopeInformation As DocuSignEnvelopeInformation)As String 

(아무 장식 또는 네임 스페이스 위) 공공 클래스 DSConnectService 구현합니다 IDSConnectService를 사용

하여 XML의 차이는 무엇