突然间,我的网站上出现以下错误。它不访问数据库。它只是一个使用.NET 2.0的简单网站。
我最近应用了可用的Windows Server 2003 Service Pack。这会改变一切吗?
我应该补充一点,这个错误是随机出现的,并且已经在今天和昨天这样做了。我离开它5分钟,错误就消失了。
2>'/'应用程序中的服务器错误。无效的URI:无法解析主机名。描述:一个 在执行当前Web期间发生了未处理的异常 请求。请查看堆栈跟踪以获取有关的更多信息 错误以及它在代码中的起源。
异常详细信息:
System.UriFormatException:无效的URI:主机名不能 解析。
来源错误:
执行期间生成了未处理的异常 当前的网络请求。有关的来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
堆栈追踪:
[UriFormatException:无效的URI:无法解析主机名。]
System.Uri.CreateThis(String uri,Boolean dontEscape,UriKind uriKind) +5367536 System.Uri.CreateUri(Uri baseUri,String relativeUri,Boolean dontEscape)+31 System.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,ICredentials credentials)+69
System.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(Object userData)+70
System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code,CleanupCode backoutCode,Object userData)+0
System.Threading.CompressedStack.Run(CompressedStack compressedStack, ContextCallback回调,对象状态)+108
System.Xml.XmlTextReaderImpl.OpenUrl()+ 186 System.Xml.XmlTextReaderImpl.Read()+208
System.Xml.XmlLoader.Load(XmlDocument doc,XmlReader reader,Boolean preserveWhitespace)+112 System.Xml.XmlDocument.Load(XmlReader 读者)+108
System.Web.UI.WebControls.XmlDataSource.PopulateXmlDocument(XmlDocument的 document,CacheDependency& dataCacheDependency,CacheDependency& transformCacheDependency)+303
System.Web.UI.WebControls.XmlDataSource.GetXmlDocument()+153
System.Web.UI.WebControls.XmlDataSourceView.ExecuteSelect(DataSourceSelectArguments 参数)+29 System.Web.UI.WebControls.BaseDataList.GetData()+39 System.Web.UI.WebControls.DataList.CreateControlHierarchy(布尔 useDataSource)+264
System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e)+55 System.Web.UI.WebControls.BaseDataList.DataBind()+75
System.Web.UI.WebControls.BaseDataList.EnsureDataBound()+55
System.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(布尔 includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) 4588
答案 0 :(得分:5)
Uri.Create和Uri.TryCreate中存在一些错误,允许它们创建无法随后解析的无效URI。我不时遇到这种情况,但一直无法追踪导致它的url字符串。我发布了一些关于here的信息。
如果你有一个网址列表,并且知道其中一个会导致问题(我没有那么奢侈,因为我在网页抓取中遇到过这个问题,我没有保存页面文本),你可以找到这个伪代码的错误:
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);
}
}
如果您可以识别导致此异常的一些网址,我肯定希望看到它们。