2012-02-16 7 views
2

最近、メッセージの先頭とメッセージの最後に1回、メッセージでヘッダーを2回ランダムに返すwcfサービス呼び出しで問題が発生しています。ここで私はシオマネキを通じて見ています何の例です:メッセージにWCFヘッダーが重複しています

HTTP/1.1 200 OK 
Cache-Control: private 
Content-Type: text/xml; charset=utf-8 
Vary: Accept-Encoding 
Server: Microsoft-IIS/7.5 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
Date: Thu, 16 Feb 2012 15:48:22 GMT 
Content-Length: 308 

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><Person_UpdateLastCSIDResponse/></s:Body></s:Envelope>HTTP/1.1 200 OK 
Cache-Control: private 
Content-Length: 126 
Content-Type: text/xml; charset=utf-8 
Server: Microsoft-IIS/7.5 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 

これは、すべての時間が起こるが、ランダムに起こっているように見えるしません。 1つの特定のサービスコールでは発生しませんが、どのコールでも発生する可能性があります。私はまだパターンを特定できませんでした。

Silverlightアプリケーションでロードバランサを通じてバインディングタイプbasicHttpBindingを使用しています。

編集:

我々はかなり基本的な構成を持っている:

サービス側:

<system.serviceModel> 
<extensions> 
    <behaviorExtensions> 
    <add name="silverlightFaults" type="Website.Support.SilverlightFaultBehavior, Website" /> 
    </behaviorExtensions> 
</extensions> 
<behaviors> 
    <serviceBehaviors> 
    <behavior> 
    <serviceMetadata httpGetEnabled="true" /> 
    <serviceDebug includeExceptionDetailInFaults="true" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" 
    multipleSiteBindingsEnabled="true" /> 
<services> 
    <service name="Website.Services.CommonService"> 
    <endpoint address="" behaviorConfiguration="SilverlightFaultBehavior" 
    binding="basicHttpBinding" bindingConfiguration="MyDefaultBinding" 
    contract="Website.Services.CommonService" /> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    </service> 
<bindings> 
    <basicHttpBinding> 
    <binding name="MyDefaultBinding" maxBufferSize="6500000" maxReceivedMessageSize="6500000"> 
    <readerQuotas maxDepth="32" maxStringContentLength="52428800" maxArrayLength="52428800" 
     maxBytesPerRead="4096" maxNameTableCharCount="52428800" /> 
    </binding> 
    </basicHttpBinding> 
</bindings> 
<client /> 
</system.serviceModel> 

クライアント側:

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="SecureBinding" maxBufferSize="8388608" maxReceivedMessageSize="8388608"> 
       <security mode="Transport" /> 
      </binding> 
     </basicHttpBinding> 
    </bindings> 

    <client> 
     <endpoint address="https://Website/Services/CommonService.svc" binding="basicHttpBinding" bindingConfiguration="SecureBinding" 
      contract="CommonSvcReference.CommonService" name="BasicHttpBinding_CommonService"/> 
    </client> 
</system.serviceModel> 
+0

サービスの設定を提供できますか? ( ' ...'セクション) –

答えて

1

私はようやく私の問題を解決したと考えています。ロードバランサを使用しているので、キープアライブをfalseにする必要があります。問題は、BasicHttpBindingがキープアライブをtrueにしていることです。 customBindingに切り替えると、キープアライブをオフにすることができ、これによって問題が解決されます。

キープアライブをfalseに設定すると、アプリケーションの速度が遅くなるため、これを解決するにはサンプルコードを使用しましたhttp://blog.tonysneed.com/2012/06/18/building-scalable-and-secure-wcf-services/

関連する問題