2011-08-02 30 views
0

我已經查看了許多關於此問題的不同問題和迴應,但仍找不到正確的解決方案。我有一個通過代碼連接到的Web服務。 Web服務已啓動並在開發機器上運行。我正在運行IIS 7.我可以通過IE和http和https地址連接到我的服務。從代碼我可以訪問http,但是當嘗試通過https訪問時,出現錯誤404沒有端點偵聽。這看起來很簡單,但我明顯失去了一些東西。無法讓WCF配置與https一起使用

服務器的web.config看起來像: (只是相對部分)

<system.serviceModel> 
    <diagnostics> 
     <messageLogging logEntireMessage="true" logMessagesAtServiceLevel="true" 
     logMessagesAtTransportLevel="true" /> 
     <endToEndTracing activityTracing="true" /> 
    </diagnostics> 
    <services> 
     <service behaviorConfiguration="behaviorAction" name="CI.PCI.ServiceImplementations.SPPService"> 
     <endpoint address="" binding="basicHttpBinding" bindingConfiguration="HostBinding" 
      contract="CI.PCI.ServiceContracts.ISPPService" listenUri="https://cisppdev.children.org/sppservices/sppservices.svc" /> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="behaviorAction"> 
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="SafenetTokenServiceSoap11Binding" closeTimeout="00:01:00" 
      openTimeout="00:01:00" receiveTimeout="00:30:00" sendTimeout="00:30:00" 
      allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" 
      maxBufferSize="327680" maxBufferPoolSize="524288" maxReceivedMessageSize="327680" 
      messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" 
      useDefaultWebProxy="true"> 
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" 
      maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
      <security mode="Transport"> 
      <transport clientCredentialType="None" proxyCredentialType="None" 
       realm="" /> 
      <message clientCredentialType="UserName" algorithmSuite="Default" /> 
      </security> 
     </binding> 
     <binding name="HostBinding" receiveTimeout="00:30:00" sendTimeout="00:30:00" 
      bypassProxyOnLocal="true" maxBufferSize="327680" maxReceivedMessageSize="327680"> 
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" 
      maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
      <security mode="Transport" /> 
     </binding> 
     </basicHttpBinding> 
    </bindings> 
    </system.serviceModel> 
<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 


From the client code I am dynamically creating a connection which basically goes like this: 

BasicHttpBinding binding = new BasicHttpBinding(); 
url = Settings1.Default.DevURL; -- (https://cisppdev.children.org/sppservices/sppservices.svc) 
binding.Security.Mode = BasicHttpSecurityMode.Transport; 
EndpointAddress ep = new EndpointAddress(url); 

       binding.OpenTimeout = new TimeSpan(0, 10, 0); 
       binding.CloseTimeout = new TimeSpan(0, 10, 0); 
       binding.ReceiveTimeout = new TimeSpan(0, 15, 0); 
       binding.SendTimeout = new TimeSpan(0, 15, 0); 
       binding.MaxBufferSize = 327680; 
       binding.MaxReceivedMessageSize = 327680; 
       binding.MaxBufferPoolSize = 524288; 
       binding.TransferMode = TransferMode.Buffered; 


       ChannelFactory<ServiceContracts.ISPPService> factory = new ChannelFactory<ServiceContracts.ISPPService>(binding, ep); 

       factory.Open(); 

       ServiceContracts.ISPPService channel = factory.CreateChannel(); 

不管是什麼我都試過,我似乎無法找到合適的配置,以使這項工作。我沒有證書,我只想調用https服務而不是http。任何幫助,將不勝感激!!

感謝

如果你想使用https

回答