问题标签 [webexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
16578 浏览

c# - 正确处理两个 WebException

我正在尝试正确处理两个不同WebException的 '。

基本上他们在调用后处理WebClient.DownloadFile(string address, string fileName)

AFAIK,到目前为止,我必须处理两个,两个都是WebException

  • 无法解析远程名称(即没有网络连接到访问服务器下载文件)
  • (404) 文件不是名词(即文件在服务器上不存在)

可能还有更多,但这是我迄今为止发现的最重要的。

那么我应该如何正确处理这个问题,因为它们都是WebException's 但我想以不同的方式处理上述每种情况。

这是我到目前为止所拥有的:

如您所见,我正在检查消息以查看WebException它的类型。我会假设有更好或更精确的方法来做到这一点?

0 投票
1 回答
43974 浏览

.net - System.UriFormatException:无效的 URI:无法解析主机名

突然间,我的网站上出现以下错误。它不访问数据库。这只是一个使用 .NET 2.0 的简单网站。

我最近确实应用了可用的 Windows Server 2003 服务包。那会改变事情吗?

我应该补充一点,错误随机出现和消失,并且今天和昨天一直在这样做。我离开它 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 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(对象 userData)+70
System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode 代码,CleanupCode backoutCode,对象 userData)+0
System.Threading.CompressedStack.Run(CompressedStack compressedStack, ContextCallback callback, Object state) +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 reader) +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 arguments) +29 System.Web.UI.WebControls.BaseDataList.GetData() +39 System.Web.UI.WebControls.DataList.CreateControlHierarchy(Boolean 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,布尔型 includeStagesAfterAsyncPoint)+4588

0 投票
1 回答
808 浏览

c# - 链接检查器;如何避免误报

我正在使用链接检查器/断开的链接查找器,我收到了很多误报,在仔细检查后我注意到许多错误代码正在返回 webexceptions,但它们实际上是可下载的,但在其他一些情况下,状态码是 404,我可以从浏览器访问页面。

所以这里是代码,它非常丑陋,id 喜欢有更多的东西,id 说实用。如果用于过滤我不想添加到断开链接的状态代码,所有状态代码都很大,因为它们是有效链接(我对它们都进行了测试)。我需要修复的是结构(如果可能的话)以及如何不得到错误的 404。

谢谢!

0 投票
1 回答
4737 浏览

.net - 无法解析远程名称:'localhost'

应用程序如何无法查找本地主机?

该应用程序运行几个小时然后停止。

编辑我将服务作为网络参考导入并使用生成的 Reference.vb 文件调用它。

0 投票
6 回答
125038 浏览

c# - System.Net.WebException HTTP 状态码

有没有一种简单的方法可以从 a 获取 HTTP 状态代码System.Net.WebException

0 投票
2 回答
1527 浏览

c# - 如何从 WebException 响应中解析内部异常

我有对 OData Web 服务执行 POST 的 C# 代码,这会导致将记录插入到数据库中。如果出现异常,例如主键违规,我想捕获并记录错误消息。但是,该消息包含在 XML 中。这是我的异常处理程序:

这是我在 responseText 中得到的:

我需要从内部错误中取出内部异常中的消息。最简单的方法是什么?

0 投票
5 回答
60791 浏览

c# - WebException 无法为 SSL/TLS 安全通道建立信任关系

我的公司开发了一个 .NET Web 服务和一个使用该 Web 服务的客户端 dll。该网络服务通过 ssl 托管在我们的服务器上,证书由 GoDaddy 提供和签名。我们在托管环境中有一些客户端在尝试访问我们的 Web 服务时从客户端 dll 收到以下错误消息。

System.Net.WebException 底层连接已关闭:无法为 SSL/TLS 安全通道建立信任关系。

我们的解决方法是让他们在服务器上打开 IE,这对许多托管服务本身来说是一个挑战,然后转到 WSDL url。然后,IE 会通过安全警报对话框提示它们。它表示证书日期有效且有效名称与页面名称匹配,但由您未选择信任的公司颁发。当他们单击“是”继续时,客户端 dll 可以成功连接到 Web 服务并正常运行。

有谁知道为什么 GoDaddy 不会出现在有效的发布者列表中?我们运行的所有服务器都将 GoDaddy 作为有效权限。我猜,出于安全原因,他们已经卸载了 GoDaddy 的权限,但并不完全相信没有其他潜在问题。

不幸的是,我没有太多运气尝试在本地重新创建它。如果我进入 Internet Options 并删除 GoDaddy 权限并点击我们的服务,ssl 就可以正常工作。我回到出版商列表中,GoDaddy 被重新加入。所以我的第二个问题是,你到底是如何摆脱 GoDaddy 的,这样我才能得到一个无效的证书警告?

好的,最后一个问题。有没有办法在代码中告诉 Web 服务忽略无效证书。我看过一些关于使用 WCF 以编程方式执行此操作的帖子,但不是旧的 Web 服务。

0 投票
1 回答
1361 浏览

asp.net-mvc - 将 Silverlight 与 ASP.NET MVC 一起使用时收到 WebException NotFound

我不完全确定如何解释这一点,但基本上我正在尝试使用托管在 ASP.NET MVC 应用程序中的 Silverlight 应用程序。我在 MVC 端有一个基本控制器,它包含一个接受一些字符串参数并返回 ActionResult 的方法(对于这个程序,该结果是一些 Json 数据)。

当我在 Silverlight 控件中处理 WebClient.OpenReadCompleted 事件时出现了我的问题。在此控件中调用 WebClient.OpenReadAsync 方法时,它成功到达控制器,然后按预期向相关事件处理程序报告。然而,当它被处理时,事件参数包含一个错误声明:“远程服务器返回一个错误:NotFound。”。

以前,我注意到这是由于我的通信 URL 的某些部分不正确造成的——在这种情况下不是。从一些谷歌搜索中,我还注意到这是一个通用错误。因此,我很困惑。为了让事情更混乱,我在程序的另一部分使用了完全相同的通信尝试,它检索字符串数组,并且工作得非常好。

请参阅下面的示例代码(由于该程序的性质,我无法发布完整代码)。

银光控制

MVC 控制器 - 命名为 HomeController 并使用“Home”访问

注意 这里,Data 包含三个类型的成员;字符串、字符串和字节数组。出于序列化的目的,我通过包含 get 和 set 部分的公共属性公开了所有三个成员。我还添加了一个不带参数的公共构造函数。

对此的任何建议将不胜感激。

提前谢谢了。

更新

我刚刚用不同的数据尝试了相同的代码,它工作正常。我想知道这是否是数据的大小(因为第一次尝试是使用非常大的数据),但我不明白为什么如果调用成功地击中控制器会很重要。

0 投票
1 回答
7555 浏览

c# - 什么原因导致“无法连接到远程服务器”

我有一个下载器应用程序。它对我来说很好,但是一位用户向我发送了错误报告,说 System.Net.WebException 被抛出“无法连接到远程服务器”,而它适用于我的电脑上的良好链接。它适用于其他链接,但对于这个特定的,不要。是什么导致了这个异常?我的电脑配置和他的有什么区别。

0 投票
1 回答
7160 浏览

ssl - HttpWebRequest 导致“请求中止:无法创建 SSL/TLS 安全通道”

我们已经在经典 ASP 应用程序中引入了一些 .NET 页面。当用户点击其中一个 .NET 页面时,我们使用 HttpWebRequest 通过将请求发送到具有我们想要的会话变​​量名称的 Class ASP 页面来从 ASP 端获取会话变量值。此方法有效,但以下情况除外。

在我们的生产服务器上,我们的 IT 人员通过一些注册表黑客行为禁用了弱密码算法。我们想强制 128 超过 128(或者我被比我更了解安全的人告诉我)。但是,这会导致我们的会话共享请求中止并出现以下错误。

如本文所述,我们打开了跟踪日志记录。相关行似乎是这些。

我可以从这些信息中得到的唯一信息是问题是AlgorithmMismatch,但我不知道该怎么做。

我读过但我们没有尝试过的一件事是在我们发出请求之前添加以下代码。这样一个简单的改变似乎有可能解决这个AlgorithmMismatch吗?