16


9

基になる接続が閉じられました。接続が突然閉じられました

この例外は、受信までに約3分かかり、サイズが2.25メガバイトのSOAPリクエストで一貫してスローされます。

Webを精査するときに、リクエストにヘッダーを設定することに関するすべての種類の投稿を見つけることができますが、 "Expect:"ヘッダーを送信しないようにする、 "Keep-Alive:"ヘッダーを送信するようにする私が送るヘッダに関係なく私はまだこの厄介なエラーを得ます。 ヘッダを設定することが私の答えではないと思います。なぜなら_私は "curl"を使ってまったく同じリクエストを再作成でき、最終的には何の問題もなくレスポンスが戻ってくるからです。

私の

オプションが足りなくなったような気がします。 誰かが何か援助を提供できれば私は最も感謝するでしょう。 他に注意すべきことは、データを要求しているサーバーが私の手の届かないところにあることです。また、これらの要求はhttpsを介しているため、応答の小さい他の要求も問題なく動作します。

ありがとう

10 Answer


11


あなたは.NET35として投稿をタグ付けしたので、あなたはWCFを使用していますか?

もしそうなら、これは我々が大規模なデータセットに使用するApp.configの例です。



6


この質問に答えるのに遅すぎないことを願います。

契約インターフェースの定義に次の属性を追加してみてください。

[ServiceKnownType(typeof(ReturnClass))]

多相クラスを返すことを可能にする、より一般的な解決策については、この記事を参照してください。 http://www.goeleven.com/blog/entryDetail.aspx?entry=45 http://www.goeleven.com/blog/entryDetail。 aspx?entry = 45


4


edmxの代わりにdbmlを使用している場合、dbmlはデータコントラクトを必要とする直列化可能データを返さないのでdbmlファイルのプロパティに移動してシリアライゼーションモードを単方向に変更するので、このようになります。 。


3


あなたは this Blog Postの提案を試してみましたか? 問題は、おそらく.NETのTCP / HTTPスタック実装にあります。


3


私は同じ問題を抱えています、そして徹底的な調査の後に私はこの記事を見つけました:

http://consultingblogs.emc.com/merrickchaffer/archive/2007/09/19/WCF-System.Net.WebException_3A00_-The-underlying-connection-was-closed_3A00_-The-connection-was-closed-unexpectedly.aspx[メリックチャファーのブログ]

これはすべて、クライアントとサーバーの両方に "dataContractSerializer"を設定することに関連していました。 これが役立つことを願っています。


3


私のデータ転送オブジェクトが再帰的な方法で互いに参照しあったので、私はこのエラーを得ました。

例えば:

顧客 - >(持つ) - >評価評価 - >(に属する) - >顧客

だからあなたはサイクルを削除する必要があります。

[DataContract]
パブリッククラス評価{private Customer _customer;} // [DataMember] // < - その他のパブリックカスタマーカスタマー{get {return _customer;} {{customer = value}を設定します。 }}}

[DataContract]
パブリッククラスCustomer {private long _customerID; [DataMember] public long CustomerID {get {return _customerID;} } {_customerID = value;}を設定します。 }}

[DataMember] // < - またはその他の公開評価評価{get {return _rating; set {_rating = value;}を設定します。 }}}


3


私はこの解決策を見つけるまで、このエラーメッセージを取り除くためにいくつかの方法を試してみました:http://kiranpatils.wordpress.com/2008/09/22/the-underlying-connection-was-closed-the-connection-was-closed- wcf-serviceからのデータテーブルの予期せずの返却中

List <>をDataSetに変更することができます。 DataSetはList <>よりも大量のデータを処理できると思います。

それが役に立てば幸い。


2


別のフィールドを追加しましたが、プロパティに設定がありませんでした。 それが同じエラーに対する私の解決策でした。

[DataMember]
public bool HasValue {get {trueを返します。 } set {} //この行を追加することで解決しました。 }


1


これは内部エラーがある場合に発生する一般的なエラーです。

ここでトレースを追加してみてください。http://msdn.microsoft.com/en-us/library/ms732023(v=vs.110).aspx

あなたはその時完全なログを見るでしょう。


0


EFを含むWCFの場合は、コンテキストクラスに次のコードを追加するだけです。

base.Configuration.ProxyCreationEnabled = false;