を失敗した名前のよう私たちは、私たちが解決することはできませんWCFバインディングとストリーミング転送モードで興味深い問題があります。WCFバインディング構成はデフォルトとしてのみ適用されますが、それは
我々はストリーミング転送モードに設定さWCFエンドポイントを持っています。エンドポイントは、デフォルトサイズ(〜65 KB)よりもはるかに大きいメッセージを受信します。そのため、バインディングタグのmaxReceivedMessageSize属性に大きなメッセージサイズを指定しました。 「リモート:我々は、我々は次のエラーが表示されたエンドポイントをペアにしてタグを結合エンドポイントタグのbindingConfiguration属性と上名属性によって結合するとき
問題がありますサーバーがエラーを返しました:(400)Bad Request "。
両方の属性を削除するとすぐに、bindingConfigurationとという名前のはエラーなく動作します。
<binding
name="BindingConfiguration" <---- and when this goes away
transferMode="Streamed" maxReceivedMessageSize="2147483647" >
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
</binding>
だから、それだけで(明示的に名前のキーなし)デフォルトのバインディングとして動作します。ここでは
<service name="Services.DocumentService" behaviorConfiguration="ServiceBehavior">
<endpoint contract="ServiceContracts.IDocumentService" address="DocumentService"
binding="basicHttpBinding" name="basicHttpBinding"
bindingConfiguration="BindingConfiguration" <---- when this goes away
behaviorConfiguration="ServiceEndpointBehavior"/>
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/Documents/"/>
</baseAddresses>
</host>
</service>
バインディング構成である:ここでは
は、サービスエンドポイントの定義があります。奇妙なことは、どちらのシナリオでも、バインディング構成が実際に適用されている(maxReceivedMessageSizeが正しく設定されている)ことをサービスホスト上で反映して検証できることでした。 WCFのバグでしょうか?
サービスは自己ホスト型です。
非常に感謝しています。
あなたは「テスト」か何か – Rajesh
は、私たちも、このような「XX」、「XXX」、「Z」として、代替名を試してみましたと言うBindingConfiguration以外の別の名前でそれを試してみました:-) – Honzajscz
@Honzajscz問題の解決策を見つけましたか?私はまったく同じ問題を抱えています。なぜ名前付きバインド設定ではうまくいかないのかわかりません...別の設定でホストする別のサービスがある場合、それはもはや機能しないので、空の文字列を使用することはできません。編集:btw、私はstreamed transferModeを使用していません。 – ken2k