WCFサービスに問題があります。 WebHTTPバインディングを実行しており、画像を受け取るサービスです。Windows Server 2003/IIS6でWCFサービスが失敗する - 基本接続が閉じられた
一部のイメージでは、サーバーが受信ストリームの受信に失敗するという問題があります。問題はサイズに関するものではありません。 100Kbと4MBのファイルを受信できますが、800kbのファイルで失敗します。 「欠陥」画像は決して成功することはなく、「良い」画像は常に成功する。
私の現在の疑いのある人はIIS 6です。私たちはIIS 7とIIS 7.5の両方でテストとプロダクションの両方で実行していますが、IIS 6のこのカスタマーサイトでは失敗します。
IIS 6からデバッグ情報を取得して、接続が切断された原因に近づく方法を知ることができません。
以下は、関連性が高いと思われる、不快な詳細です。
誰かがここに来て、私を助けてくれることを願っています。
マシン
のWindows 2003 R2、SP2 + IIS 6、+ .NET 2.0 + 3.5
WCF
私は、私のWCFサービスのためにバッファするTransfermodeを変更しました私がそれをした後、サービスコードは起動されません。だから私はWCFの設定を疑うことはありません。
私はWCFのmeesageLoggingを有効にしました。これは、もう一度私にほとんど何も与えません。ログファイルで
<system.serviceModel>
<diagnostics>
<messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="-1"/>
</diagnostics>
ログはその後私に次のようになります
:基本情報:
アクティビティ名:2012-03-22 09:メッセージ1.
処理時間:27:56.1996
レベル:エラー
ソース:System.ServiceModel
プロセス:
スレッドW3WP:12
例外メッセージ:
利用可能なバイト数はHTTPのContent-Lengthヘッダと矛盾しています。ネットワークエラーが発生しているか、クライアントが無効な要求を送信している可能性があります。
例外Stakctrace:
System.ServiceModel.Channels.HttpInput.ReadBufferedMessage(ストリーム のinputStream) システム。ServiceModel.Channels.HttpInput.ParseIncomingMessage(例外& requestException) System.ServiceModel.Channels.HttpRequestContext.CreateMessage() System.ServiceModel.Channels.HttpChannelListener.HttpContextReceived(HttpRequestContext コンテキスト、ItemDequeuedCallbackコールバック) System.ServiceModel.Activation。 HostedHttpTransportManager.HttpContextReceived(HostedHttpRequestAsyncResult 結果) System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest() System.ServiceModel.Activation.HostedHttpRequestAsyncResult.BeginRequest() System.ServiceModel.Activation.HostedHttpRequestAsyncResult.OnBeginRequest(オブジェクト 状態) System.ServiceModel.PartialTrustHelpers.PartialTrustInvoke(ContextCallback コールバック、オブジェクト状態) System.ServiceModel.Activation.HostedHttpRequestAsyncResult.OnBeginRequestWithFlow(オブジェクト 状態) System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.WorkItem.Invoke2() システム。 ServiceModel.Channels.IOThreadScheduler.CriticalHelper.WorkItem.Invoke() System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.ProcessCallbacks() System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.CompletionCallback(オブジェクト 状態) System.ServiceModel.Channels .IOThreadScheduler.CriticalHelper.ScheduledOverlapped.IOCallback(UInt32型 のerrorCode、UInt32型NUMBYTES、ネイティブ重複* nativeOverlapped) System.ServiceModel.Diagnostics.Utility.IOCompletionThunk.UnhandledExceptionFrame(UInt32型 誤差、UInt32型bytesRead、NativeOverlapped * nativeOverlapped) System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32型 のerrorCode、UInt32型NUMBYTES、NativeOverlapped * pOVERLAP)
再び
、それはどこかWCFパイプラインのエラーのために責任があるが、私たちのWCFサービスではないという証拠。
HTTPERR
私は無関係であるべき、IISのHTTPERRログをチェックしないと、そこには何もなく、Timer_ConnectionIdleエントリーしています。
フィドラー
フィドラーちょうど明白なことを述べている:
[フィドラー] ReadResponse()が失敗しました:サーバーは、この要求に対する応答を返しませんでした。
私に知らせて、私はそれを提出するより多くの情報の必要性がある場合。
敬具 /アンダース
注:WCFサービスがServer 2008/IIS7ボックスでホストされている場合、この現象も見られました。 – adillon
こんにちは、私はこれが私たちのバグを引き起こしているとは思わない。ファイルをネットワーク共有に書き込む前にエラーが発生します。サーバーにイメージをストリーミングすると、一部のファイルでエラーが発生し、一部のファイルのみがアップロードされます。前述のように、バッファリングされたトランスポートモードが有効な場合、WCFサービスは呼び出されません。私たちはいくつかのネットワーク要素を疑っていますが、顧客からまだ回答がありません。しかし、彼らはこの問題を解決したと主張しています。 – ankhansen