10

突然、私のWebサイトで次のエラーが発生しました。データベースにはアクセスしません。.NET2.0を使用した単純なWebサイトです。

最近、利用可能なWindowsServer2003サービスパックを適用しました。それは物事を変えたのでしょうか?

エラーはランダムに発生し、発生し、今日と昨日も発生していることを付け加えておきます。5分間そのままにしておくと、エラーはなくなります。

'/'アプリケーションのサーバーエラー。

無効なURI:ホスト名を解析できませんでした。説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーとエラーがコードのどこで発生したかについての詳細は、スタックトレースを確認してください。

例外の詳細:

System.UriFormatException:無効なURI:ホスト名を解析できませんでした。

ソースエラー:

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

スタックトレース:

[UriFormatException:無効なURI:ホスト名を解析できませんでした。]
System.Uri.CreateThis(String uri、Boolean dontEscape、UriKind uriKind)+5367536 System.Uri.CreateUri(Uri baseUri、String RelativeUri、Boolean dontEscape)+31システム。 Uri..ctor(Uri baseUri、String RelativeUri)+34 System.Net.HttpWebRequest.CheckResubmit(Exception&e)+5300867

[WebException:HTTP /HTTPSプロトコルから他の異なるプロトコルへのリダイレクトを処理できません。]System.Net.HttpWebRequest.GetResponse()+5314029 System.Xml.XmlDownloadManager.GetNonFileStream(Uri uri、ICredentialscredentials)+69System.Xml.XmlDownloadManager
。 GetStream(Uri uri、ICredentials資格情報)+3929371 System.Xml.XmlUrlResolver.GetEntity(Uri AbsoluteUri、String role、Type ofObjectToReturn)+54
System.Xml.XmlTextReaderImpl.OpenUrlDelegate(Object xmlResolver)+74
System.Threading.CompressedStack.runTryCode(オブジェクトuserData)+70
System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code、CleanupCode backoutCode、Object userData)+0
System.Threading.CompressedStack.Run(CompressedStackcompressedStack、ContextCallbackコールバック、オブジェクト状態)+108
System.Xml.XmlTextReaderImpl.OpenUrl()+186
System.Xml.XmlTextReaderImpl.Read()+208
System.Xml.XmlLoader.Load(XmlDocument doc、XmlReaderリーダー、ブールpreserveWhitespace)+112 System.Xml.XmlDocument.Load(XmlReaderリーダー)+108
System.Web.UI.WebControls.XmlDataSource.PopulateXmlDocument(XmlDocument document、CacheDependency&dataCacheDependency、CacheDependency&transformCacheDependency)+303System.Web
。 UI.WebControls.XmlDataSource.GetXmlDocument()+153
System.Web.UI.WebControls.XmlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments)+29 System.Web.UI.WebControls.BaseDataList.GetData()+39 System.Web.UI.WebControls.DataList.CreateControlHierarchy(Boolean useDataSource)+264
システム.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e)+55 System.Web.UI.WebControls.BaseDataList.DataBind()+75 System.Web.UI.WebControls.BaseDataList.EnsureDataBound()+
55System.Web
。 UI.WebControls.BaseDataList.CreateChildControls()+65
System.Web.UI.Control.EnsureChildControls( )+97
System.Web.UI.Control.PreRenderRecursiveInternal() +53
System.Web.UI.Control.PreRenderRecursiveInternal ()+202
System.Web.UI.Control.PreRenderRecursiveInternal()+202
System.Web.UI.Control.PreRenderRecursiveInternal() +202 System.Web.UI.Control.PreRenderRecursiveInternal(

+202 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint、Boolean includeStagesAfterAsyncPoint)+4588

4

1 に答える 1

6

Uri.CreateとUri.TryCreateには、後で解析できない無効なURIを作成できるバグがいくつかあります。私は時々これに遭遇しましたが、それを引き起こしているURL文字列を追跡することができませんでした。ここに少し投稿しました。

URLのリストがあり、そのうちの1つが問題の原因であることがわかっている場合(ページテキストを保存していないWebクロールでこれに遭遇したため、私にはそれほど贅沢はありませんでした)、エラーを見つけることができます。この擬似コードのようなもの:

while not end of file
{
    string url = read from file
    Uri uri = new Uri(url);
    try
    {
        string host = uri.Host;
    }
    catch (UriFormatException)
    {
        Console.WriteLine("Bad url: {0}", url);
    }
}

この例外の原因となるURLを特定できれば、ぜひご覧ください。

于 2010-05-11T23:31:11.530 に答える