BiliBiliToolPro
BiliBiliToolPro copied to clipboard
【其他】Linux系统本地运行报网络异常,An error occurred while sending the request
[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(Memory
1 , 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.AsyncStateMachineBox
1.ExecutionContextCallback(Object )
at System.Threading.ExecutionContext.RunInternal(ExecutionContext , ContextCallback , Object )
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox
1.MoveNext(Thread )
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox
1.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.AsyncTaskMethodBuilder
1.AsyncStateMachineBox1.ExecutionContextCallback(Object ) at System.Threading.ExecutionContext.RunInternal(ExecutionContext , ContextCallback , Object ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder
1.AsyncStateMachineBox1.MoveNext(Thread ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder
1.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.Task
1.TrySetResult(TResult )
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.SetExistingTaskResult(Task
1 , TResult )
at System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder1.SetResult(TResult ) at System.Threading.Tasks.TaskCompletionSourceWithCancellation
1.WaitWithCancellationAsync(CancellationToken )
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox
1.ExecutionContextCallback(Object )
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread , ExecutionContext , ContextCallback , Object )
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox
1.MoveNext(Thread )
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox
1.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, ResultPredicates
1 shouldRetryResultPredicates, Func5 onRetryAsync, Int32 permittedRetryCount, IEnumerable
1 sleepDurationsEnumerable, Func4 sleepDurationProvider, Boolean continueOnCapturedContext) at Polly.AsyncPolicy
1.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.<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)
[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(Memory
1 , 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.AsyncStateMachineBox
1.ExecutionContextCallback(Object )
at System.Threading.ExecutionContext.RunInternal(ExecutionContext , ContextCallback , Object )
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox
1.MoveNext(Thread )
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox
1.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.AsyncTaskMethodBuilder
1.AsyncStateMachineBox1.ExecutionContextCallback(Object ) at System.Threading.ExecutionContext.RunInternal(ExecutionContext , ContextCallback , Object ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder
1.AsyncStateMachineBox1.MoveNext(Thread ) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder
1.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.Task
1.TrySetResult(TResult )
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.SetExistingTaskResult(Task
1 , TResult )
at System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder1.SetResult(TResult ) at System.Threading.Tasks.TaskCompletionSourceWithCancellation
1.WaitWithCancellationAsync(CancellationToken )
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox
1.ExecutionContextCallback(Object )
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread , ExecutionContext , ContextCallback , Object )
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox
1.MoveNext(Thread )
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox
1.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, ResultPredicates
1 shouldRetryResultPredicates, Func5 onRetryAsync, Int32 permittedRetryCount, IEnumerable
1 sleepDurationsEnumerable, Func4 sleepDurationProvider, Boolean continueOnCapturedContext) at Polly.AsyncPolicy
1.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.DefaultApiActionInvoker
1.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]#
上面是运行日志,请问是哪里的问题?
像是网络问题,确定b站域名能ping通吗
可以ping通呢
@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 秒
@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();
根本原因可能是网络方面的,建议:
- 代码上兼容一下报错,比如这里没有获取到时有个提示,报cookie获取失败,然后把
ckStr
的值打出来。 - 分析到更上层的问题时,可以文本提示一下,然后中断任务
我VS设置和你不一样, 就先不优化这个代码拉(狗头)
@RayWangQvQ 程序里面我已经看不懂整体结构了,只能帮一点通用的: 网上查阅104相关的资料:
- tcp层面,对方说要重置连接了,发送了RET信号过来,这边还继续发送了信息就会触发104.
- 程序层面,可能和超时设置有关
- 请求层面,可能头过大或请求体过大,导致处理超时(也可以说是超出缓冲区了)
- 连接方面,可能是这次连接莫名中断了,双方有一方效验不过,发送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