0

自己ホスト型の wcf アプリで net.tcp バインディングを行うことにしました (トランスポート レベルの暗号化を使用)。

自己ホスト型の wcf アプリを動作させるというテーマに関する情報を得るのに非常に興味深い時間を過ごしましたが、現在動作しているソリューションはバインドを暗黙的に指定していないため、デフォルトで BasicHttp になっていると思います。

net.tcp へのバインドとトランスポート レベルの暗号化を「追加/変更」する方法がわかりません。TCP で保護された接続を「テスト」することにも興味があります。いくつかのテスト セキュリティ シナリオを実行するには、何を使用しますか?

作業コード: 暗黙のバインディングが指定されていません...

'create URI
        Dim myServiceAddress As New Uri("http://" & LocalIpAddress & ":" & tcp_port & "/" & servicename)

        Dim myservicehost As New ServiceHost(GetType(plutocomm), myServiceAddress)

        ' Enable metadata publishing.
        Dim smb As New ServiceMetadataBehavior()
        smb.HttpGetEnabled = True
        smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15
        myservicehost.Description.Behaviors.Add(smb)

        myservicehost.Open()

アップデート

これに関する更新...本当にここで頭を悩ませ始めています..

私が今持っています:

バインディングを tcp に変更 作成、インストール、および参照された自己署名証明書のトレースに役立つ情報が表示されない...

これが私の新しいコードです:

 Dim myServiceAddress As New Uri("net.tcp://" & localIpAddress & ":" & tcp_port & "/" & servicename)

        Dim myservicehost As New ServiceHost(GetType(plutocomm))
        'create binding
        Dim myNetTcpBinding = New NetTcpBinding()
        myNetTcpBinding.Security.Mode = SecurityMode.Transport
        myNetTcpBinding.Security.Transport.ClientCredentialType = TcpClientCredentialType.None



        ' Enable metadata publishing.
        Dim smb As New ServiceMetadataBehavior()
        smb.HttpGetEnabled = False
        smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15
        myservicehost.Description.Behaviors.Add(smb)

        myservicehost.AddServiceEndpoint(GetType(Iplutocomm), myNetTcpBinding, myServiceAddress)
        myservicehost.Credentials.ServiceCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindBySubjectName, "louisvantonder")


        myservicehost.Open()

それを参照しようとすると、「警告」が表示されますが、理由についての実際の情報はありません...?

<E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>262171</EventID><Type>3</Type><SubType Name="Warning">0</SubType><Level>4</Level><TimeCreated SystemTime="2013-05-28T01:16:53.0868677Z" /><Source Name="System.ServiceModel" /><Correlation ActivityID="{a696dcda-b24a-4838-9f23-cd0d67690af7}" /><Execution ProcessName="pluto" ProcessID="8472" ThreadID="3" /><Channel /><Computer>LOUISVANTONDER</Computer></System><ApplicationData><TraceData><DataItem><TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Warning"><TraceIdentifier>http://msdn.microsoft.com/en-ZA/library/System.ServiceModel.Channels.SocketConnectionAbort.aspx</TraceIdentifier><Description>SocketConnection aborted</Description><AppDomain>pluto.exe</AppDomain><Source>System.ServiceModel.Channels.SocketConnection/37489757</Source></TraceRecord></DataItem></TraceData></ApplicationData></E2ETraceEvent>

私はまだ実行可能な解決策を得ることができません...これが私の現在のコードです

4

1 に答える 1