2012-04-13 24 views
2

私は、ライブ環境にサービスを公開するまで、メッセージがリモートサーバーにWCFを介してログオンできるようにするために、 HTTPSを使用します。HTTPS経由のwsHTTPBindingでエラー400の「不正なリクエスト」が発生する

検索の結果、異なるプロトコルを考慮してServiceConfigを変更する必要があることがわかりました。 、私はライブサービスなどを追加することができた状態であるように見える私の設定に推奨される変更をした

  1. How to configure WCF services to work through HTTPS without HTTP binding?
  2. WCF Bindings needed for HTTPS

:私は、これら二つの記事を組み合わせて使用​​しましたVS2010のWCFリファレンスですが、IEを使用してサービスまたはmexアドレスを参照すると、「HTTP 400 Bad Request」エラーが一貫して受信されています。

私はそれを正常に実行するように見えるかもしれませんが、mexはIEを通して動作したくありません。

サービス自体は、Windows Server 2003 R2 Standard Edition SP2でホストされています。負荷分散を行わずにIIS 6.0を実行します。

私はこの時点で本当に迷っています。私は3〜4日を費やしてしまいましたが、これ以上進展していないようです。だから、どんな助けでも大歓迎です。

質問でサーバーサービスの設定は以下を参照してください。

<system.serviceModel> 
    <services> 
     <service name="mycorp.Callback.SecPayService" behaviorConfiguration="mycorp.Callback.SecPayServiceBehavior"> 
     <endpoint address="https://myserver.co.uk/SecPay/SecPayService.svc" 
        binding="wsHttpBinding" bindingConfiguration="TransportBinding" 
        contract="mycorp.Callback.ISecPayService"/>  
     <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />   
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="mycorp.Callback.SecPayServiceBehavior"> 
      <serviceMetadata httpsGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <bindings> 
     <wsHttpBinding> 
     <binding name="TransportBinding"> 
      <security mode="Transport"> 
      <transport clientCredentialType="None" /> 
      </security> 
     </binding> 
     </wsHttpBinding> 
    </bindings> 
    </system.serviceModel> 
+0

クライアント側のWCF設定を送信できますか?サービスはどこにホストされていますか? IIS? Windowsサービス?その他? – DaveRead

+0

WCFサービスをホストするのは誰ですか? – innovia

+0

クライアント側の情報で更新しました。サーバーマネージャーにIISの詳細を尋ねました。 –

答えて

2

あなたがIISでサービスをホストしている場合は、単にエンドポイント要素は、IIS

によって割り当てられているエンドポイントのアドレスとして空の文字列に値を対処する必要があり
+0

これは私の問題を解決しました.MEXをブラウズするとhttps://myserver1.co.ukではなくhttps://myserver1.co.ukが返され、ハードコードされたバインディングが干渉している。 ありがとうRaj –

関連する問題