2011-07-06 13 views
12

soapUIを使用してテストできるように、私のWCF(.NET 4.0)サービスを設定しようとしています。私はメッセージセキュリティでwsHttpBindingを使用しています。私の目標は、サービスを公開テストエンドポイントに公開し、soapUIテストを使用するloadUIを使用してサービスをロードテストしようとすることです。これを動作させるには、エンドポイントを安全にする必要があります。また、プロダクションエンドポイントはメッセージセキュリティを使用するため、私は自分のテストを実動テストの結果に近づけるために使うべきだと判断します。soapUI with WCF Message Security

正常にサービスを呼び出すためにsoapUIを構成できないようです。私は、クライアントとサーバーの証明書を使って、入出力の署名と暗号化の組み合わせを試してきました。誰もWCFとsoapUIのメッセージセキュリティコンフィグレーションを成功させることができましたか?バインディング

:以下

私の設定からexerptsある

<wsHttpBinding> 

      <binding name="MessageSecurity"> 
       <security mode="Message"> 
        <message clientCredentialType="Certificate" negotiateServiceCredential="false"/> 
       </security> 
      </binding> 

     </wsHttpBinding> 

行動

<behaviors> 
     <serviceBehaviors> 
      <behavior name="customBehavior"> 
       <serviceMetadata httpGetEnabled="True"/> 
       <serviceDebug includeExceptionDetailInFaults="True"/> 

       <serviceCredentials> 
        <clientCertificate> 
         <authentication certificateValidationMode="PeerTrust"/> 
        </clientCertificate> 
        <serviceCertificate findValue="MyWebServicesCertificate" x509FindType="FindBySubjectName" storeLocation="LocalMachine" storeName="My"/> 
       </serviceCredentials> 
      </behavior> 
     </serviceBehaviors> 

     <endpointBehaviors> 
      <behavior name="webHttp"> 
       <webHttp/> 
      </behavior> 
     </endpointBehaviors> 

    </behaviors> 
</system.serviceModel> 

サービス:

  <service behaviorConfiguration="customBehavior" name="MyService"> 

      <!-- Service Endpoint --> 
      <endpoint name="Production" address="" binding="wsHttpBinding" bindingConfiguration="MessageSecurity" contract="IMyService"> 

       <identity> 
        <dns value="web_services_svr"/> 
       </identity> 
      </endpoint> 




      <host> 
       <baseAddresses> 
        <add baseAddress="http://web_services_svr/MyService.svc" /> 
       </baseAddresses> 
      </host> 

     </service> 
+1

SOAPUIが接続しようとしているエラーはどういうものですか? – kroonwijk

+0

コンソールアプリケーションからサービスを呼び出してみてください。フィドラーを使用して要求と応答をキャプチャして確認します。 –

答えて

0

Webプロキシがあり、ネットワーク内のSOAPUIとの問題があります。他の問題がないと仮定して、これを動作させるには、SoapUIでプロキシ設定を構成する必要があります。

1

また、negotiateServiceCredentialをfalseに設定し、さらにSecureSessionをfalseに設定します。

この相互運用性の後に可能です。契約にProtectionLecel.Signを追加すると(暗号化しないなど)、さらに簡単になります。

+0

+1:それは良い提案ですが、それでもやりたいことはありません。 'negotiateServiceCredential'と' establishSecuritySession'をfalseに設定した後、WCFトレースログには別のエラーがあります - 「アクションでメッセージを受け入れることができるチャンネルがありませんでした」http://schemas.xmlsoap.org/ws/2005/ 02/trust/RST/Issue '。 " – VoodooChild

+0

両方をfalseに設定すると、soapuiでもセキュリティの必要はありません –

0

firefoxプラグインまたはカールを使用して呼び出しを試みてください。任意のツールを使用してコールを正常に実行できる場合は、要求をコピーしてsoapUIから実行してみてください。あなたが他のツールを使用している場合は、soap/tcpコールを行わない限りsoapUIでもうまくいくはずです。

1

あなたはいくつかのことをチェックしたいかもしれません。また、あなたがマークをチェックするSOAP UIで確認してください)

<wsHttpBinding> 
    <binding name="wsHttpSecure"> 
     <security mode="Message"> 
     <message clientCredentialType="UserName" negotiateServiceCredential="false"  
        establishSecurityContext="false" algorithmSuite="Default" /> 
     </security> 
    </binding> 
</wsHttpBinding> 

1)を設定しnegotiateServiceCredential = "false" を "デフォルトのWSAを追加するには、"

チェックこのリンク http://ddkonline.blogspot.com.br/2012/10/wcf-45-host-unreachable-when-calling.html

3 )クライアント証明書チェックの後のリンクには

http://www.soapui.org/SOAP-and-WSDL/applying-ws-security.html

私はそれが助けてくれることを願っています。