问题标签 [system.net.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 投票
0 回答
169 浏览

asp.net - Active Directory 调用获取 System.net.webexception

我有一个通过端点与 Active Directory 服务器对话的 asp .net 程序。我正在执行三个操作。GetAllActiveDirectoryUsers()、GetAllActiveDirectoryGroups()、SaveUserToGroupMapping()

在 GetAllActiveDirectoryUsers() 中,我从 AD 中提取所有 UserPrincipal 对象并将该信息填充到数据库表中。工作正常

在GetAllActiveDirectoryGroups () 中,我从 AD 中提取所有 GroupPrincipal 对象并将该信息填充到数据库表中

在 SaveUserToGroupMapping() 中获取所有 userPrincipal 对象,对于每个用户主体,我找到了一个 UserPrincipal.GetGroups()。几乎有 6500 个用户主体对象,为每个用户主体对象执行一个组主体有点费时。拉取所有 userprincipal 和 userPrincipal.GetGroup() 大约需要 65 分钟。 突然中断

我的 Web 应用程序部署在 Web 服务器框上,上面显示的用户主体和组主体上的代码片段位于应用服务器框中。它是调用 Active Directory 服务器的应用服务器。Web 应用程序只需单击一个按钮即可启动顺序代码执行。

我尝试在此代码周围捕获异常。此代码适用于一定数量的用户,但突然抛出异常,如下所示: 这是来自 Web 服务器的异常日志。我在应用服务器上看不到任何异常日志。

我不确定问题出在哪里。是因为 AD 服务器还是 Web 服务器或应用服务器。关键是我写了其他日志,以了解代码执行成功的程度,我看到代码片段中的循环在一段时间内工作正常,比如一小时,然后突然失败。

非常感谢调试此问题或分析问题所在的任何帮助?

0 投票
3 回答
37058 浏览

c# - HttpWebrequest 失败,内部异常身份验证失败,因为远程方已关闭传输流

使用 C#、.Net 4.5,我试图通过远程服务器上的 HttpWebRequest 发送 Web 请求。请看下面的代码。我尝试了一些论坛建议的大多数解决方案,但我总是以同样的错误告终。请参阅下面的堆栈跟踪。调用 request.GetReponse() 方法时抛出错误。

附加信息,基本上,我正在尝试调用安装在远程服务器上的 vmware 的 vCenter 组件的 reloadSslCertificate 函数。目前,该错误仅发生在 vCenter 5.5 上。它在 5.1 及以下版本中运行良好。

异常:System.Net.WebException:底层连接已关闭:发送时发生意外错误。---> System.IO.IOException: 身份验证失败,因为远程方已关闭传输流。在 System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState。 CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState。

提前致谢。

0 投票
1 回答
427 浏览

c# - 如何重新发出网络请求?我必须重新创建 Webclient 吗?

当遇到异常时,以下代码会卡在 while 循环中。这是因为 GetResponse 正在缓存数据。

根据fiddler的说法,第一次请求发出后没有数据。

重新创建网络客户端以解决我遇到的“刷新”问题是最佳实践吗?

0 投票
2 回答
1313 浏览

c# - .NET 抛出 WebException 而不是设置 StatusCode

我的方法中有以下代码:

serverUri 是有效的,如果该目录在服务器上不存在,则此方法有效。但是,如果该目录已经存在,System.Net.WebException : The remote server returned an error: (550) File unavailable (e.g., file not found, no access)则会发生。

为什么我调用request.GetResponse()而不是设置 FtpWebResponse 对象的 StatusCodeFtpStatusCode.ActionNotTakenFileUnavailable为 550 时会发生此异常?

我找到有关如何处理异常并从中获取状态代码和描述的信息。但我想知道为什么首先抛出异常,而不是设置响应对象的状态代码并让编码器决定它是否需要异常。

0 投票
0 回答
64 浏览

c# - 如何检查 HTTP 地址是否响应而不抛出异常?

连接到不可用地址时,WebClient 和 HttpWebRequest 引发 WebException。我见过一些使用 BeginGetResponse 的技术来避免在这种情况下抛出异常。但它们严重依赖 Async 关键字。有什么方法可以检查 HTTP 服务而不抛出异常并且只使用 .NET 3.5?

0 投票
1 回答
3043 浏览

c# - GetRequestStream() 返回 WebException 超时...但仅在某些机器上

第一次“使用”时抛出异常:
using (var os = firstRequest.GetRequestStream())

我现在的猜测是它与服务器发起的 ssl 信任问题有关,但如果这是真的,那么 4 台 windows 7 pro 机器之间有什么不同,其中 2 台工作正常,2 台抛出异常,

异常详情:

会是什么呢 ?

0 投票
2 回答
3792 浏览

c# - 长时间运行后连接意外关闭 C#

嗨,我正在为网站制作爬虫。爬了大约 3 个小时后,我的应用程序在 WebException 上停止了。下面是我在 c# 中的代码。client 是预定义的WebClient对象,每次处理 gameDoc 时都会被释放。gameDoc 是一个HtmlDocument对象(来自HtmlAgilityPack

我尝试从这个答案中使用下面的代码(以保持 webclient 新鲜)

但结果还是一样。然后我使用 StreamReader,结果保持不变!下面是我使用 StreamReader 的代码。

我应该怎么做和检查?我很困惑,因为我能够在同一站点上的某些页面上爬行,然后在大约 1000 个结果中,它导致了异常。来自异常的消息是唯一The request was aborted: The connection was closed unexpectedly.的,状态是ConnectionClosed

PS。该应用程序是桌面表单应用程序。

更新 :

现在我正在跳过这些值并将它们设置为 null,以便继续爬行。但是如果真的需要数据,我还是得手动更新爬取结果,因为结果包含数千条记录,这很累。请帮我。

例子 :

就像您从网站上下载了大约 1300 条数据,然后应用程序停止说The request was aborted: The connection was closed unexpectedly.,而您的所有互联网连接仍然处于良好的速度。

0 投票
2 回答
25635 浏览

c# - 请求被中止:请求被取消。没有解决方案有效

我们的控制台应用程序每分钟向 Facebook 发出数百个 WebRequest(使用多个应用程序和数百个访问令牌)。现在,他们开始失败,标题中出现异常消息(“请求被中止:请求被取消”)。我们在互联网上搜索了几个小时,并尝试了所有可能的解决方案,但没有任何帮助。

这些没有帮助:

有人有其他想法吗?

编辑:

异常的ToString:System.Net.WebException:请求被中止:请求被取消。---> System.Net.WebException:在 System.Net.HttpWebRequest.FindServicePoint(Boolean forceFind) 的 System.Net.ServicePointManager.FindServicePoint(Uri address, IWebProxy proxy, ProxyChain& chain, HttpAbortDelegate& abortDelegate, Int32& abortState) 处取消了请求在 System.Net.HttpWebRequest.DoSubmitRequestProcessing(Exception& exception) 在 System.Net.HttpWebRequest.SetResponse(Exception E) --- 内部异常堆栈跟踪结束 --- 在 System.Net.HttpWebRequest.GetResponse() 在 WebException 消息:请求被中止:请求被取消。

编辑2:我们没有达到极限。我们知道什么时候会发生这种情况,问题不是那样。我们已经这样做了两年,而这件事在整个过程中只发生过两次。每个 AccessToken 我们只执行 2-3 个请求/分钟,而 Facebook 上的限制是 600 个请求/accesstoken/ip。

编辑3:我想为有此或类似问题的人添加一个额外的提示:确保您处理您的 RequestStream、您的 Response 和您的 ResponseStream 对象。

0 投票
1 回答
996 浏览

asp.net-web-api - 如何接收从 WebClient.UploadFile() 发送的文件?

由于这个简单的测试有效(在正文中传递一个字符串):

服务器代码:

客户端代码:

...然后我试图更进一步(朝着我真正需要做的事情 - 发送文件,而不是字符串);我将服务器代码更改为:

...以及对此的客户端代码:

...但是在运行时会死掉:

System.Net.WebException 未处理 HResult=-2146233079 Message=远程服务器返回错误:(415) 不支持的媒体类型。

那么如何接收以这种方式上传的文件呢?我需要什么媒体类型,如何指定?

更新

因为我最终需要发送一个文件,或者至少是一个文件的内容,所以我找到了这个 SO Question/Answer并将我的代码更改为:

...虽然这向我表明 byteData 已正确分配,但似乎没有任何东西进入服务器 - 服务器的“值”属性:

...在调用该方法时只是一个空字节数组。

我尝试删除 [FromBody],但无济于事(没有更改),并将其更改为 [FromUri](我认为这不起作用,但在百灵鸟上尝试过)导致它因 WebException 而崩溃。

那么如何让服务器接受/识别/接收字节数组呢?

0 投票
1 回答
188 浏览

.net - 为什么 System.Net.Browser.ClientHttpWebRequest 访问无效服务器地址时返回 404?

当访问没有服务器运行的无效 IP 地址时,Microsoft System.Net.Browser.ClientHttpWebRequest 似乎抛出了一个状态代码为 NotFound 的 WebException,这对应于服务器的 404 响应。正确的响应不是 HTTP 状态代码,也绝对不在 400 范围内,因为客户端库从来没有机会与有效的 HTTP 服务器对话。这对我的代码来说是有问题的,因为 404 在我的服务器端点返回时具有特殊含义。

有没有办法确定服务器何时实际返回 404 (NotFound) 响应与被错误地用于描述 System.Net.Browser.ClientHttpWebRequest 类的一般连接故障?

请注意,我在 WP8 上会发生这种行为。