エラーを見つけるために、プロジェクトでelmah-> Elmah.axd を使用しています。
このようなエラーがあります:
System.Web.HttpException: The remote Host closed the connection. The error code is 0x800703E3.
Generated: Sun, 27 Nov 2011 13:06:13 GMT
System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.Web.HttpException (0x800703E3): The remote Host closed the connection. The error code is 0x800703E3.
at System.Web.Hosting.IIS7WorkerRequest.RaiseCommunicationError(Int32 result, Boolean throwOnDisconnect)
at System.Web.Hosting.IIS7WorkerRequest.ExplicitFlush()
at System.Web.HttpResponse.Flush(Boolean finalFlush)
at System.Web.HttpWriter.TransmitFile(String filename, Int64 offset, Int64 size, Boolean isImpersonating, Boolean supportsLongTransmitFile)
at System.Web.HttpResponse.TransmitFile(String filename, Int64 offset, Int64 length)
at SalarSoft.Utility.SP1.ResumeDownload.ProcessDownload(String fileName, String headerFileName)
at NiceFileExplorer.en.Download.DownloadFile_SalarSoft(String fileName)
at NiceFileExplorer.en.Download.GoForDownloadFile(String filepath)
at NiceFileExplorer.en.Download.MainCodes()
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.HandleError(Exception e)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest()
at System.Web.UI.Page.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
webサイトでの作業中に、このエラーは表示されません。
しかしelmahはこのエラーを何度も私に送ります。
このエラーの意味と修正方法を教えてください。
EDIT 1
{私のWebサイトはダウンロードしたモバイルファイル用で、ときどき忙しい}
{私はWindows Server 2008 R2->リモートアクセスを使用しています}
コメント2の後の編集2
今日の一部のWindows情報と警告(エラーはありません)ログは以下のとおりです。
警告
アプリケーションプール 'ASP.NET 4.0(統合)'を提供するプロセスが、シャットダウン中に時間制限を超えました。プロセスIDは「6764」でした。
警告
アプリケーションプール 'ASP.NET 4.0(統合)'を提供するワーカープロセス '3232'は、割り当てられた時間内にプロトコル 'http'のリスナーチャネルを停止できませんでした。データフィールドにはエラー番号が含まれています。
警告
アプリケーションプール 'ASP.NET 4.0(統合)'を提供するプロセスが、シャットダウン中に時間制限を超えました。プロセスIDは「3928」でした。
私が作ったウェブサイトのログでこれをよく見ます。
その例外は、ページの読み込みが完了する前に、クライアントが(別のページに移動したか、ブラウザを閉じた)接続を切断したことを意味します。クライアントがファイルをダウンロードしている場合、終了/続行することを決定する時間があるため、このエラーはさらに発生しやすくなります。
エラーはユーザーには表示されません*-Elmahログから削除しました。
*このサイトでは認証されたユーザーのみが許可されています。エラーを経験したElmahから、いつ、それを見ることができます。私はユーザーに尋ねましたが、1人ではなくeverがクライアントでこのバグを経験していると報告しました。
ユーザーがファイルのダウンロードをキャンセルしたときにそのエラーに遭遇しました。サーバー側では、メッセージリモートホストが接続を閉じました。エラーコードは0x800703Eの例外を生成します。ただし、例外には個別に処理できる特殊なタイプはありません。
ASP.NET MVCで適切に処理するためのODRERで、例外ロガーを追加しました。
public static class RegisterFilters
{
public static void Execute(HttpConfiguration configuration)
{
configuration.Services.Add(typeof(IExceptionLogger), new WebExceptionLogger());
}
}
そして、WebExceptionLoggerクラスの実装:
public class WebExceptionLogger : ExceptionLogger
{
private const int RequestCancelledByUserExceptionCode = -2147023901;
public override void Log(ExceptionLoggerContext context)
{
var dependencyScope = context.Request.GetDependencyScope();
var loggerFactory = dependencyScope.GetService(typeof(ILoggerFactory)) as ILoggerFactory;
if (loggerFactory == null)
{
throw new IoCResolutionException<ILoggerFactory>();
}
var logger = loggerFactory.GetTechnicalLogger<WebExceptionLogger>();
if (context.Exception.HResult == RequestCancelledByUserExceptionCode)
{
logger.Info($"Request to url {context.Request.RequestUri} was cancelled by user.");
}
else
{
logger.Error("An unhandled exception has occured", context.Exception);
}
}
}
この特定のエラータイプにはHResult = -2147023901があることに気づきました。そのため、これをフィルタリングしています。
お役に立てれば。
今日私はこれに遭遇しましたが、私にとっては、リモート側が送信するのを待っている間にソケットがタイムアウトしたために起こりました。
この例では、極端に(または意図的に)遅いクライアントが例外を引き起こす可能性があります。
高いSSL要件で課税されるいくつかの特定の遅いクライアントをサポートしたかったので、ソケットの受信タイムアウトを増やすことで解決することにしました。
このパーティーに少し遅れましたが、他の人を助けるために、Response.Close()が私の状況で例外を引き起こしていました。
エルマによって捕らえられた、OPによって記述された例外を見ました。
これは応答を閉じたために発生していました(私がサポートしていたコードは応答出力ストリームに書き込んでいました):
_Response.Flush();
Response.Close();
Response.End();
_
Response.Close();
を削除すると、スローされる例外が停止しました。
mINERGATE/socket_error_the_remote_Host_closed_the_connection /でこの問題に直面しました。ログアウトしてC:\ Users\yourName\AppData\Local\minergate.ethash-minergateに移動し、このフォルダー内のすべてのファイルを削除する必要があります。いいル