2009-04-28 13 views
12

मैं घंटों के लिए figthing कर रहा हूँ अब इस समस्या यह पता लगाने की।WCF + एसएसएल कोई endpoint पाया

मैं एक WCF सेवा है कि मैं II7 पर होस्ट है, सब ठीक काम करता है जब मैं सामान्य http प्रोटोकॉल का उपयोग करें।

मैं SSL capabilites जोड़ा गया है और तब से मैं कोड से उस तक पहुंच नहीं कर सकता। मैं एक ग्राहक बना सकता हूं लेकिन इसकी किसी भी विधि को नहीं चला सकता।

यहाँ मैं क्या मिल रहा है मैं

<system.serviceModel> 
    <bindings> 
     <wsHttpBinding> 
      <binding name="WSHttp0"> 
       <security mode="Transport"> 
        <transport realm ="" clientCredentialType="None" /> 
       </security> 
      </binding> 
     </wsHttpBinding> 
    </bindings> 
    <client> 
     <endpoint address="https://serverName.domname.local/WCFTest/MyWebServicec.svc" 
      binding="wsHttpBinding" bindingConfiguration="WSHttp0" contract="SSLWebService.IMyWebService" 
      name="WSEP"> 
      <identity> 
       <dns value="serverName.domname.local" /> 
      </identity> 
     </endpoint> 
    </client> 
</system.serviceModel> 

मैं अपने प्रोजेक्ट

के लिए एक सेवा संदर्भ जोड़ा क्या है और मैं यह है कि

Dim client As MyWebServiceClient = New MyWebServiceClient() 
Try 
    client.GetDocumentByDocID(5) 
Catch ex As Exception 
    MessageBox.Show(ex.Message) 
End Try 

और यहाँ की तरह का उपयोग

कोई 01 पर सुन endpoint थाजो संदेश स्वीकार कर सकता है। यह अक्सर गलत पते या SOAP कार्रवाई के कारण होता है। अधिक विवरण के लिए, यदि उपस्थित हो तो इनरएक्सेप्शन देखें।

किसी को भी मुझे इस पर मदद कर सकते हैं? मैं वास्तव में समझ में नहीं क्या चल रहा है ...

टिप्पणी: मैं वेब सेवा सही ढंग से इंटरनेट एक्सप्लोरर (इसलिए मुझे लगता है कि मेरी प्रमाण पत्र ठीक है)

+0

यह मददगार हो सकता है सर्वर विन्यास को देखने के लिए किया जाता है –

उत्तर

3

आप उस के बारे में सही थे,

Sg सर्वर साइड पर गलत।

यहाँ

कैसे मैं यह काम कर रहा

<system.serviceModel> 
    <bindings> 
     <wsHttpBinding> 
      <binding name="wsHttpEndpointBinding"> 
       <security mode="Transport"> 
        <transport clientCredentialType ="None"/> 
       </security> 
      </binding> 
     </wsHttpBinding> 
    </bindings> 
    <services> 
     <service behaviorConfiguration="App_WcfWebService.AppWebServiceBehavior" name="App_WcfWebService.AppWebService"> 
      <endpoint address="" binding="wsHttpBinding" bindingConfiguration ="wsHttpEndpointBinding" contract="App_WcfWebService.IAppWebService"> 

      </endpoint> 
      <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
      <behavior name="App_WcfWebService.AppWebServiceBehavior"> 
       <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> 
       <serviceMetadata httpsGetEnabled="true"/> 
       <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 
       <serviceDebug includeExceptionDetailInFaults="true"/> 
       <serviceThrottling maxConcurrentSessions="90" />      
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 
</system.serviceModel> 
4

मुझे लगता है कि सर्वर web.config हो सकता है का उपयोग कर उपयोग कर सकते हैं यहां दोषपूर्ण है। मुझे क्लाइंट पक्ष पर निम्नलिखित app.config के साथ एसएसएल काम पर डब्ल्यूसीएफ मिला है।

<configuration> 
    <system.serviceModel> 
    <bindings> 
     <wsHttpBinding> 
     <binding name="WSHttpBinding_IService" > 
      <security mode="Transport"> 
      <transport realm ="" clientCredentialType="Windows" /> 
      </security> 
     </binding> 

     </wsHttpBinding> 
    </bindings> 
    <client> 
     <endpoint address="https://mycomputer/Service/Service.svc" 
      binding="wsHttpBinding" 
      bindingConfiguration="WSHttpBinding_IService" 
      contract="ServiceProxy.IService" name="WSHttpBinding_IService"> 
     <identity> 
      <dns value="mycomputer" /> 
     </identity> 
     </endpoint> 
    </client> 
    </system.serviceModel> 
</configuration> 

केवल अंतर दिखाई ClientCredentialType जो मैं Windows करने के लिए निर्धारित किया है के रूप में मैं एकीकृत विंडोज़ प्रमाणीकरण का उपयोग करना चाहते हैं। सर्वर web.config सेटअप करने के लिए निम्नलिखित लाइनों सेवा है जो ग्राहक उपभोग कर सकते हैं शामिल हैं।

<system.serviceModel> 
    <bindings> 
     <wsHttpBinding> 
     <binding name="WindowsBinding"> 
      <security mode="Transport"> 
      <transport proxyCredentialType="Windows" /> 
      </security> 
     </binding> 
     </wsHttpBinding> 
    </bindings> 
    <services> 
     <service behaviorConfiguration="Service.Service1Behavior" 
       name="Service.Service"> 
     <endpoint address="" binding="wsHttpBinding" 
        bindingConfiguration="WindowsBinding" 
        contract="ServiceInterface.IService"> 
      <identity> 
      <dns value="mycomputer" /> 
      </identity> 
     </endpoint> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="Service.Service1Behavior"> 
      <serviceMetadata httpGetEnabled="true"/> 
      <serviceDebug includeExceptionDetailInFaults="false"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 

क्या आप सर्वर की ओर से अपने web.config पर इसकी तुलना कर सकते हैं और देखें कि क्या भिन्न है? या प्रश्न के लिए अपना web.config जोड़ें।

संबंधित मुद्दे