0

次のコードをHTTPで正常に使用していますが、SSLを使用したいと思います。web.configでエンドポイントアドレスをhttpsに変更し、セキュリティモードをトランスポートに変更すると、「提供されたURIスキーム「https」は無効です。「http」が必要です。」というエラーが表示されます。

これは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>
4

2 に答える 2

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" %>
于 2012-06-19T16:16:03.737 に答える
0

それ以外の

security mode="None"

使用する

security mode="None"
于 2012-05-16T14:16:49.773 に答える