RayWangQvQ / BiliBiliToolPro

B 站(bilibili)自动任务工具,支持docker、青龙、k8s等多种部署方式。敏感肌也能用。
MIT License
6.19k stars 1.76k forks source link

【其他】Linux系统本地运行报网络异常,An error occurred while sending the request #520

Open sifanx opened 1 year ago

sifanx commented 1 year ago

[root@AlmaLinux bilibilitool]# ./Ray.BiliBiliTool.Console --runTasks=Login


| _ \ _ | ) | || | _ | | | |) / ` | | | | | () () | |/ \ / | | | < (| | || | | |) | | | | | | () | () | | || __,|_, | |____/|||| ||_/ \/|_| |___/

[10:34:06 INF] BiliBiliToolPro 开始运行...

[10:34:07 INF] 【账号个数】0个

[10:34:07 INF] 【目标任务】Login [10:34:07 INF] =====开始 扫码登录 =====

[10:34:07 INF] ---开始 获取二维码 --- [10:34:30 ERR] [REQUEST] GET /x/passport-login/web/qrcode/generate HTTP/1.1 Host: passport.bilibili.com Accept: application/json, text/plain, /, application/json; q=0.001, application/xml; q=0.001 Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6 Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: same-site Connection: keep-alive

[EXCEPTION] System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.IO.IOException: Unable to read data from the transport connection: Connection reset by peer. ---> System.Net.Sockets.SocketException (104): Connection reset by peer at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.CreateException(SocketError , Boolean ) at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ReceiveAsync(Socket , CancellationToken ) at System.Net.Sockets.Socket.ReceiveAsync(Memory1 , SocketFlags , Boolean , CancellationToken ) at System.Net.Sockets.NetworkStream.ReadAsync(Memory1 , CancellationToken ) at System.Net.Http.HttpConnection.InitialFillAsync(Boolean ) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.StartTStateMachine at System.Net.Http.HttpConnection.InitialFillAsync(Boolean ) at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage , Boolean , CancellationToken ) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.StartTStateMachine at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage , Boolean , CancellationToken ) at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage , Boolean , Boolean , CancellationToken ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.ExecutionContextCallback(Object ) at System.Threading.ExecutionContext.RunInternal(ExecutionContext , ContextCallback , Object ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.MoveNext(Thread ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.MoveNext() at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(IAsyncStateMachineBox , Boolean ) at System.Threading.Tasks.Task.RunContinuations(Object ) at System.Threading.Tasks.Task.FinishContinuations() at System.Threading.Tasks.Task1.TrySetResult(TResult ) at System.Net.Http.HttpConnectionPool.GetHttp11ConnectionAsync(HttpRequestMessage , Boolean , CancellationToken ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.ExecutionContextCallback(Object ) at System.Threading.ExecutionContext.RunInternal(ExecutionContext , ContextCallback , Object ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.MoveNext(Thread ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.MoveNext() at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(IAsyncStateMachineBox , Boolean ) at System.Threading.Tasks.Task.RunContinuations(Object ) at System.Threading.Tasks.Task.FinishContinuations() at System.Threading.Tasks.Task1.TrySetResult(TResult ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.SetExistingTaskResult(Task1 , TResult ) at System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder1.SetResult(TResult ) at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.ExecutionContextCallback(Object ) at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread , ExecutionContext , ContextCallback , Object ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.MoveNext(Thread ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.ExecuteFromThreadPool(Thread ) at System.Threading.ThreadPoolWorkQueue.Dispatch() at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart() at System.Threading.Thread.StartCallback() --- End of stack trace from previous location ---

--- End of inner exception stack trace --- at System.Net.Http.HttpConnection.InitialFillAsync(Boolean ) at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage , Boolean , CancellationToken ) --- End of inner exception stack trace --- at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage , Boolean , CancellationToken ) at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage , Boolean , Boolean , CancellationToken ) at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage , Boolean , CancellationToken ) at Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler.SendAsync(HttpRequestMessage , CancellationToken ) at Microsoft.Extensions.Http.PolicyHttpMessageHandler.SendCoreAsync(HttpRequestMessage request, Context context, CancellationToken cancellationToken) at Polly.Retry.AsyncRetryEngine.ImplementationAsync[TResult](Func3 action, Context context, CancellationToken cancellationToken, ExceptionPredicates shouldRetryExceptionPredicates, ResultPredicates1 shouldRetryResultPredicates, Func5 onRetryAsync, Int32 permittedRetryCount, IEnumerable1 sleepDurationsEnumerable, Func4 sleepDurationProvider, Boolean continueOnCapturedContext) at Polly.AsyncPolicy1.ExecuteAsync(Func`3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext) at Microsoft.Extensions.Http.PolicyHttpMessageHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at Ray.BiliBiliTool.Agent.HttpClientDelegatingHandlers.IntervalDelegatingHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler.SendAsync(HttpRequestMessage , CancellationToken ) at System.Net.Http.HttpClient.g__Core|83_0(HttpRequestMessage , HttpCompletionOption , CancellationTokenSource , Boolean , CancellationTokenSource , CancellationToken ) at WebApiClientCore.Implementations.ApiRequestSender.SendCoreAsync(ApiRequestContext context) at WebApiClientCore.Implementations.ApiRequestSender.SendAsync(ApiRequestContext context)

[ELAPSED] 00:00:22.0228252 [10:34:30 ERR] 程序发生异常:An error occurred while sending the request. [10:34:30 INF] --------结束--------

[10:34:30 ERR] 程序发生异常:An error occurred while sending the request. [10:34:30 INF] =========结束=========

[10:34:30 ERR] 程序异常终止,原因:An error occurred while sending the request. [10:34:30 INF] 运行环境:Production [10:34:30 INF] 应用目录:/usr/local/bilibilitool/

[10:34:30 INF] 运行结束 [10:34:30 FTL] Host terminated unexpectedly! System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.IO.IOException: Unable to read data from the transport connection: Connection reset by peer. ---> System.Net.Sockets.SocketException (104): Connection reset by peer at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.CreateException(SocketError , Boolean ) at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ReceiveAsync(Socket , CancellationToken ) at System.Net.Sockets.Socket.ReceiveAsync(Memory1 , SocketFlags , Boolean , CancellationToken ) at System.Net.Sockets.NetworkStream.ReadAsync(Memory1 , CancellationToken ) at System.Net.Http.HttpConnection.InitialFillAsync(Boolean ) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.StartTStateMachine at System.Net.Http.HttpConnection.InitialFillAsync(Boolean ) at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage , Boolean , CancellationToken ) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.StartTStateMachine at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage , Boolean , CancellationToken ) at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage , Boolean , Boolean , CancellationToken ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.ExecutionContextCallback(Object ) at System.Threading.ExecutionContext.RunInternal(ExecutionContext , ContextCallback , Object ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.MoveNext(Thread ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.MoveNext() at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(IAsyncStateMachineBox , Boolean ) at System.Threading.Tasks.Task.RunContinuations(Object ) at System.Threading.Tasks.Task.FinishContinuations() at System.Threading.Tasks.Task1.TrySetResult(TResult ) at System.Net.Http.HttpConnectionPool.GetHttp11ConnectionAsync(HttpRequestMessage , Boolean , CancellationToken ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.ExecutionContextCallback(Object ) at System.Threading.ExecutionContext.RunInternal(ExecutionContext , ContextCallback , Object ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.MoveNext(Thread ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.MoveNext() at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(IAsyncStateMachineBox , Boolean ) at System.Threading.Tasks.Task.RunContinuations(Object ) at System.Threading.Tasks.Task.FinishContinuations() at System.Threading.Tasks.Task1.TrySetResult(TResult ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.SetExistingTaskResult(Task1 , TResult ) at System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder1.SetResult(TResult ) at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.ExecutionContextCallback(Object ) at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread , ExecutionContext , ContextCallback , Object ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.MoveNext(Thread ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.ExecuteFromThreadPool(Thread ) at System.Threading.ThreadPoolWorkQueue.Dispatch() at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart() at System.Threading.Thread.StartCallback() --- End of stack trace from previous location ---

--- End of inner exception stack trace --- at System.Net.Http.HttpConnection.InitialFillAsync(Boolean ) at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage , Boolean , CancellationToken ) --- End of inner exception stack trace --- at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage , Boolean , CancellationToken ) at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage , Boolean , Boolean , CancellationToken ) at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage , Boolean , CancellationToken ) at Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler.SendAsync(HttpRequestMessage , CancellationToken ) at Microsoft.Extensions.Http.PolicyHttpMessageHandler.SendCoreAsync(HttpRequestMessage request, Context context, CancellationToken cancellationToken) at Polly.Retry.AsyncRetryEngine.ImplementationAsync[TResult](Func3 action, Context context, CancellationToken cancellationToken, ExceptionPredicates shouldRetryExceptionPredicates, ResultPredicates1 shouldRetryResultPredicates, Func5 onRetryAsync, Int32 permittedRetryCount, IEnumerable1 sleepDurationsEnumerable, Func4 sleepDurationProvider, Boolean continueOnCapturedContext) at Polly.AsyncPolicy1.ExecuteAsync(Func3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext) at Microsoft.Extensions.Http.PolicyHttpMessageHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at Ray.BiliBiliTool.Agent.HttpClientDelegatingHandlers.IntervalDelegatingHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler.SendAsync(HttpRequestMessage , CancellationToken ) at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage , HttpCompletionOption , CancellationTokenSource , Boolean , CancellationTokenSource , CancellationToken ) at WebApiClientCore.Implementations.ApiRequestSender.SendCoreAsync(ApiRequestContext context) at WebApiClientCore.Implementations.ApiRequestSender.SendAsync(ApiRequestContext context) at WebApiClientCore.Implementations.DefaultApiActionInvoker1.InvokeAsync(ApiRequestContext request) at WebApiClientCore.Implementations.DefaultApiActionInvoker`1.InvokeAsync(HttpClientContext context, Object[] arguments) at Ray.BiliBiliTool.DomainService.LoginDomainService.LoginByQrCodeAsync(CancellationToken cancellationToken) at Ray.BiliBiliTool.Application.LoginTaskAppService.QrCodeLoginAsync(CancellationToken cancellationToken) at Ray.BiliBiliTool.Application.LoginTaskAppService.DoTaskAsync(CancellationToken cancellationToken) at Ray.BiliBiliTool.Console.BiliBiliToolHostedService.DoTasksAsync(String[] tasks, CancellationToken cancellationToken) at Ray.BiliBiliTool.Console.BiliBiliToolHostedService.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken ) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost , CancellationToken ) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost , CancellationToken ) at Ray.BiliBiliTool.Console.Program.Main(String[] args) [root@AlmaLinux bilibilitool]# ping 223.6.6.6 PING 223.6.6.6 (223.6.6.6) 56(84) bytes of data. 64 bytes from 223.6.6.6: icmp_seq=1 ttl=117 time=6.16 ms 64 bytes from 223.6.6.6: icmp_seq=2 ttl=117 time=6.24 ms ^C --- 223.6.6.6 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 6.159/6.200/6.242/0.089 ms [root@AlmaLinux bilibilitool]# dotnet --info

global.json file: Not found

Host: Version: 6.0.15 Architecture: x64 Commit: 5edef4b20b

.NET SDKs installed: No SDKs were found.

.NET runtimes installed: Microsoft.NETCore.App 6.0.15 [/usr/lib64/dotnet/shared/Microsoft.NETCore.App]

Download .NET: https://aka.ms/dotnet-download

Learn about .NET Runtimes and SDKs: https://aka.ms/dotnet/runtimes-sdk-info [root@AlmaLinux bilibilitool]#

sifanx commented 1 year ago

上面是运行日志,请问是哪里的问题?

RayWangQvQ commented 1 year ago

像是网络问题,确定b站域名能ping通吗

sifanx commented 1 year ago

image

可以ping通呢

melodyjerry commented 1 year ago

@RayWangQvQ 大佬你好,我也出现这种问题Host terminated unexpectedly!

## 开始执行... 2023-05-29 17:26:16

已安装dotnet,当前版本:6.0.403

repo目录: /ql/data/repo
bili仓库目录: /ql/data/repo/RayWangQvQ_BiliBiliToolPro_develop

  ____               ____    _   _____           _  
 |  _ \ __ _ _   _  | __ ) _| |_|_   _|__   ___ | | 
 | |_) / _` | | | | |  _ \(_) (_) | |/ _ \ / _ \| | 
 |  _ < (_| | |_| | | |_) | | | | | | (_) | (_) | | 
 |_| \_\__,_|\__, | |____/|_|_|_| |_|\___/ \___/|_| 
             |___/                                  

[17:26:20 FTL] Host terminated unexpectedly!
System.ArgumentOutOfRangeException: Length cannot be less than zero. (Parameter 'length')
   at System.String.Substring(Int32 startIndex, Int32 length)
   at Ray.BiliBiliTool.Infrastructure.Cookie.CookieStrFactory.CkStrToDictionary(String ckStr) in /ql/data/repo/RayWangQvQ_BiliBiliToolPro_develop/src/Ray.BiliBiliTool.Infrastructure/Cookie/CookieStrFactory.cs:line 107
   at Ray.BiliBiliTool.Infrastructure.Cookie.CookieStrFactory..ctor(List`1 strList) in /ql/data/repo/RayWangQvQ_BiliBiliToolPro_develop/src/Ray.BiliBiliTool.Infrastructure/Cookie/CookieStrFactory.cs:line 17
   at Ray.BiliBiliTool.Agent.Extensions.ServiceCollectionExtension.<>c.<AddBiliBiliClientApi>b__0_0(IServiceProvider sp) in /ql/data/repo/RayWangQvQ_BiliBiliToolPro_develop/src/Ray.BiliBiliTool.Agent/Extensions/ServiceCollectionExtension.cs:line 46
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerable(IEnumerableCallSite enumerableCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(Type serviceType)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Ray.BiliBiliTool.Console.Program.Main(String[] args) in /ql/data/repo/RayWangQvQ_BiliBiliToolPro_develop/src/Ray.BiliBiliTool.Console/Program.cs:line 29

## 执行结束... 2023-05-29 17:26:20  耗时 4 秒 
hjkl950217 commented 1 year ago

@RayWangQvQ 大佬你好,我也出现这种问题Host terminated unexpectedly!

## 开始执行... 2023-05-29 17:26:16

已安装dotnet,当前版本:6.0.403

repo目录: /ql/data/repo
bili仓库目录: /ql/data/repo/RayWangQvQ_BiliBiliToolPro_develop

  ____               ____    _   _____           _  
 |  _ \ __ _ _   _  | __ ) _| |_|_   _|__   ___ | | 
 | |_) / _` | | | | |  _ \(_) (_) | |/ _ \ / _ \| | 
 |  _ < (_| | |_| | | |_) | | | | | | (_) | (_) | | 
 |_| \_\__,_|\__, | |____/|_|_|_| |_|\___/ \___/|_| 
             |___/                                  

[17:26:20 FTL] Host terminated unexpectedly!
System.ArgumentOutOfRangeException: Length cannot be less than zero. (Parameter 'length')
   at System.String.Substring(Int32 startIndex, Int32 length)
   at Ray.BiliBiliTool.Infrastructure.Cookie.CookieStrFactory.CkStrToDictionary(String ckStr) in /ql/data/repo/RayWangQvQ_BiliBiliToolPro_develop/src/Ray.BiliBiliTool.Infrastructure/Cookie/CookieStrFactory.cs:line 107
   at Ray.BiliBiliTool.Infrastructure.Cookie.CookieStrFactory..ctor(List`1 strList) in /ql/data/repo/RayWangQvQ_BiliBiliToolPro_develop/src/Ray.BiliBiliTool.Infrastructure/Cookie/CookieStrFactory.cs:line 17
   at Ray.BiliBiliTool.Agent.Extensions.ServiceCollectionExtension.<>c.<AddBiliBiliClientApi>b__0_0(IServiceProvider sp) in /ql/data/repo/RayWangQvQ_BiliBiliToolPro_develop/src/Ray.BiliBiliTool.Agent/Extensions/ServiceCollectionExtension.cs:line 46
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerable(IEnumerableCallSite enumerableCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(Type serviceType)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Ray.BiliBiliTool.Console.Program.Main(String[] args) in /ql/data/repo/RayWangQvQ_BiliBiliToolPro_develop/src/Ray.BiliBiliTool.Console/Program.cs:line 29

## 执行结束... 2023-05-29 17:26:20  耗时 4 秒 

@melodyjerry 你和它的情况不一样,报错信息是不一样的。

@RayWangQvQ 这里是代码没兼容报错了,indexOf没有获取到,自然就报这个错了。 var key = item[..item.IndexOf("=", StringComparison.Ordinal)].Trim();

根本原因可能是网络方面的,建议:

  1. 代码上兼容一下报错,比如这里没有获取到时有个提示,报cookie获取失败,然后把ckStr的值打出来。
  2. 分析到更上层的问题时,可以文本提示一下,然后中断任务
  3. 我VS设置和你不一样, 就先不优化这个代码拉(狗头)

hjkl950217 commented 1 year ago

@RayWangQvQ 程序里面我已经看不懂整体结构了,只能帮一点通用的: 网上查阅104相关的资料:

  1. tcp层面,对方说要重置连接了,发送了RET信号过来,这边还继续发送了信息就会触发104.
  2. 程序层面,可能和超时设置有关
  3. 请求层面,可能头过大或请求体过大,导致处理超时(也可以说是超出缓冲区了)
  4. 连接方面,可能是这次连接莫名中断了,双方有一方效验不过,发送RET请求重传数据,然后另一方没管就继续发送,触发104.

建议:程序中我看到是通过aop的库在发送http请求,部分API上可以增加标记,支持重试。 重试之后还不行的话就代表真的断了,webapiclient库的重试方法。(大部分http aop库应该都有重试的功能,没有的话可以改造一下)

参考资料1:https://www.jb51.net/article/256096.htm 参考资料2:https://blog.csdn.net/weixin_44972135/article/details/92806391