部署时HTML Agility Pack SocketException

问题描述 投票:0回答:1

我不确定这是否与HTML Agility有关,但这是我的问题。

我正在使用如下所示的HTML Agility Pack解析HTML文档:

var web = new HtmlWeb();
var doc = web.Load(url);
...
Parsing Logic

当我在本地运行它时,它工作得很好,但是,当我部署应用程序时,出现以下错误:(我正在使用Ionos 1&1进行托管)

SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

System.Net.Http.ConnectHelper.ConnectAsync(字符串主机,整数端口,CancellationToken cancelledToken)

HttpRequestException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. System.Net.Http.ConnectHelper.ConnectAsync(string host, int port, CancellationToken cancellationToken) System.Threading.Tasks.ValueTask<TResult>.get_Result() System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<TResult>+ConfiguredValueTaskAwaiter.GetResult() System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, bool allowHttp2, CancellationToken cancellationToken) System.Threading.Tasks.ValueTask<TResult>.get_Result() System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<TResult>+ConfiguredValueTaskAwaiter.GetResult() System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken) System.Threading.Tasks.ValueTask<TResult>.get_Result() System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<TResult>+ConfiguredValueTaskAwaiter.GetResult() System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken) System.Threading.Tasks.ValueTask<TResult>.get_Result() System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<TResult>+ConfiguredValueTaskAwaiter.GetResult() System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, bool doRequestAuth, CancellationToken cancellationToken) System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) System.Net.Http.DiagnosticsHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task<HttpResponseMessage> sendTask, HttpRequestMessage request, CancellationTokenSource cts, bool disposeCts) System.Net.HttpWebRequest.SendRequest() System.Net.HttpWebRequest.GetResponse()

System.Net.Sockets.SocketException (10060): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)

也可能出于安全原因,从Ionos 1&1阻止了来自Web应用程序的传出呼叫?

我可以从任何浏览器访问链接都很好

c# asp.net asp.net-mvc core asp.net-core-3.1
1个回答
0
投票

我设法解决了这个问题。令人怀疑的是(由于代码在本地运行良好),HTML Agility Pack没有错。问题是我的Web应用程序的拨出电话被托管服务提供商阻止。

要解决该问题,我必须使用代理进行呼叫。代理详细信息(地址和端口)通常由主机提供。

希望这对以后的人有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.