26

次のページにリダイレクトしようとすると、次のエラーが表示されます

ノート: Even the connection is open and it is fine.

基礎となる接続が閉じられました: 維持されるはずの接続がサーバーによって閉じられました。説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外System.Net.WebExceptionの詳細: : 基になる接続が閉じられました: 維持されると予想された接続がサーバーによって閉じられました。

ソース エラー:

現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。

スタック トレース:

[WebException: The underlying connection was closed: A connection that was expected to be kept alive was closed by the server.]
  Effrtpartsigndone.Page_Load(Object sender, EventArgs e) +8196
  System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
  System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
  System.Web.UI.Control.OnLoad(EventArgs e) +91
  System.Web.UI.Control.LoadRecursive() +74
  System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207

バージョン情報: Microsoft .NET Framework バージョン:4.0.30319;

ASP.NET バージョン:4.0.30319.272

4

7 に答える 7

9

この MSDN の投稿は、同様の状況を説明しているようです。問題が一致するかどうかをお知らせください:

http://social.msdn.microsoft.com/forums/en-US/netfxnetcom/thread/246ffc07-1cab-44b5-b529-f1135866ebca/

見積もり:

[...].Net は、ソケットの 1 つのsenddataで最初に Expect 100 を送信してから、実際の要求を送信します。サーバーは Continue 100 で応答します。そして、まさにここで .Net が「基になる接続が閉じていました。接続が予期せず閉じられました」というメッセージを表示しています。

.Netは、とにかくデータを送信したが、サーバーが Connection : Close を送信したという印象を受けているため、リクエストを再送信せずにエラーが表示されます。

したがって、私のために働いた上記の解決策は

System.Net.ServicePointManager.Expect100Continue = False

侵入者間のトラフィックを確認したい場合は、Wireshark または同様のツールを使用して HTTP 交換をスヌープします。

于 2012-12-27T14:24:41.473 に答える
8

これはおそらく、クライアントのタイムアウトがサーバーのタイムアウトよりも長いためです。サーバーは接続を閉じますが、クライアントはまだ応答を待っているか、要求を送信しています。

KeepAlive プロパティを False に設定して、接続が自動的に閉じられ、要求ごとに再度開かれるようにする必要があります。これにより、閉じた接続を使用しようとする問題が回避されます。

于 2016-05-30T14:38:17.593 に答える
2

RestSharp ライブラリを使用すると、同じ問題が発生しました。RestClient オブジェクトを作成する前に、次の 2 行を追加して解決しました。

ServicePointManager.DefaultConnectionLimit = 100;
ServicePointManager.MaxServicePointIdleTime = 5000;
于 2017-09-08T11:10:57.603 に答える
1

serviceBehaviors要素のサーバーの構成で同じ問題と設定がありました

<serviceBehaviors>
    <behavior name="ServiceBehaviour">
        ...
        <dataContractSerializer maxItemsInObjectGraph="6553500"/>
        ...
    </behavior>
</serviceBehaviors>

問題を解決しました。

トレースは、これらの問題の根本を見つけるのに大いに役立ちます: https://msdn.microsoft.com/en-us/library/ms733025(v=vs.110).aspx

于 2015-07-03T08:29:26.357 に答える
0

オブジェクト グラフには、返されるループがありました。これはおそらくあなたの問題ではないことはわかっていますが、他の誰かが同じ問題を抱えている場合に備えて、ここに追加しています. 有効にIncludeExceptionDetailInFaultsしましたが、クライアント (アプリケーションまたは WCF テスト クライアント) でエラーが発生しませんでした。幸いなことに、サーバーログに表示されたので、その方法で見つけることができました.

私たちはparent -> childとを持っていchild -> parentました 双方向のナビゲーションのために、そのリンクを壊す必要があり、代わりに を持ってparent -> childいました. 子は親を検索するための ID を持っていたので、エラーはなくなりました.

これが誰かを助けることを願っています!

于 2014-03-10T00:58:23.230 に答える