2012-05-16 3 views
0

Я успешно использую следующий код с HTTP, но я бы хотел использовать SSL. Когда я изменяю адрес конечной точки на https и изменяю режим безопасности на Transport в файле web.config, я получаю сообщение об ошибке: «Предоставленная схема URI« https »недействительна, ожидается« http ».Настройка WCF через SSL

Это тестовая форма VB.net.

Imports WindowsApplication1.WCFService 
Imports System.ServiceModel 

Public Class Form1 
Private WCFConnection As Service1Client 'Class reference from the ServiceReference 

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 
    If WCFConnection Is Nothing Then 

     WCFConnection = New Service1Client(New System.ServiceModel.BasicHttpBinding(), New EndpointAddress("https://www.mysite.com/Service1.svc?wsdl")) 
    End If 

    Dim NParray As String = WCFConnection.GetNP("8") 
    TextBox1.Text = NParray 



End Sub 
End Class 

Тогда вот web.config,

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 

      <binding name="BasicHttpBinding_IService1" closeTimeout="00:01:00" 
       openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" 
       allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" 
       maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" 
       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> 

     </basicHttpBinding> 
    </bindings> 
    <client> 
     <endpoint address="https://www.mysite.com/Service1.svc" binding="basicHttpBinding" 
      bindingConfiguration="BasicHttpBinding_IService1" contract="WCFService.IService1" 
      name="BasicHttpBinding_IService1" /> 
    </client> 
</system.serviceModel> 

<system.webServer> 
<modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer> 
+0

Является ли это web.config вы используете, когда вы получаете сообщение об ошибке? Адрес конечной точки должен быть https, а не http. Если это не настройка для https, укажите, что вместо того, что работает. –

+0

Это рабочий. Я изменил адрес конечной точки на https и режим безопасности для транспорта в файле web.config. Затем в форме i изменился на https и получим ошибку. – sonicbabbler

+0

Получаете ли вы ошибку в клиенте или услуге? –

ответ

1

Я понял это.

Вот web.config, что я использую

<?xml version="1.0"?> 
<configuration> 

<system.serviceModel> 

    <behaviors> 
    <serviceBehaviors> 
     <behavior name="ServBehave"> 
     <serviceMetadata httpsGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="false"/> 
     </behavior> 
    </serviceBehaviors> 
    </behaviors> 
    <services> 
    <service behaviorConfiguration="ServBehave" name="FILE_WCF.Srv"> 
     <endpoint address="" binding="customBinding" bindingConfiguration="custBind" 
     contract="FILE_WCF.ISrv" /> 
    </service> 
    </services> 
    <bindings> 

    <customBinding> 
     <binding name="custBind"> 
     <binaryMessageEncoding></binaryMessageEncoding> 
     <httpsTransport></httpsTransport> 
     </binding> 
    </customBinding> 
    </bindings> 

    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
</system.serviceModel> 

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer> 

</configuration> 

Вот файл SVC

<%@ ServiceHost Language="VB" Debug="true" Service="FILE_WCF.Srv" CodeBehind="FILE.svc.vb" %> 
0

Вместо того

security mode="None" 

использования

security mode="None" 
Смежные вопросы