BiliBiliToolPro icon indicating copy to clipboard operation
BiliBiliToolPro copied to clipboard

【Bug】不管运行什么脚本,都会 报错Host terminated unexpectedly!

Open melodyjerry opened this issue 1 year ago • 2 comments

版本号:dotnet 6.0.403。 运行环境:青龙面板2.15.14不行,刚更新的2.15.15也不行。

问题描述:

不管运行什么脚本,都会 报错Host terminated unexpectedly!
我也删除了ck,还是不行。

日志信息:

## 开始执行... 2023-05-30 09:00:58

已安装dotnet,当前版本:6.0.403

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

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

[09:01:04 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-30 09:01:04  耗时 6 秒  

melodyjerry avatar May 30 '23 01:05 melodyjerry

我也是这样,请问解决了吗

ssssssshi avatar Jun 07 '23 05:06 ssssssshi

同样的问题

zh77658 avatar Jul 28 '23 07:07 zh77658

同样的问题,青龙面板全新安装,青龙正式版 v2.17.2

## 开始执行... 2024-03-21 16:48:13

./bili_task_base.sh: line 7: /root/.bashrc: No such file or directory
已安装dotnet,当前版本:6.0.125

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

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

[16:48:35 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/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/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/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/src/Ray.BiliBiliTool.Console/Program.cs:line 27

## 执行结束... 2024-03-21 16:48:35  耗时 22 秒     

ChatGPT:这个报错是由于在处理字符串时发生了参数错误导致的。具体来说,错误信息指出在一个字符串的子串操作中,长度参数(length)的值不能小于零。这通常是由于试图从一个空字符串或者指定的起始位置超过了字符串长度的位置开始提取子串而引起的。

根据报错信息,问题出现在 Ray.BiliBiliTool.Infrastructure.Cookie.CookieStrFactory.CkStrToDictionary 方法的第 107 行。在这个方法中,对字符串进行了 Substring 操作,而在这个操作中传递了一个小于零的长度参数。具体修复方法可能涉及检查传递给 Substring 方法的参数是否正确,确保在调用此方法时字符串长度大于零,并且长度参数的值大于等于零。可能需要在代码中添加一些条件判断来确保这些情况的发生。

此外,还需要检查 CookieStrFactory.cs 文件中的相关代码,特别是在处理字符串的地方,确保没有出现逻辑错误或者边界情况没有被正确处理。

Weixiang avatar Mar 21 '24 08:03 Weixiang

dev先行版优化更新了下,可以切换试试

RayWangQvQ avatar May 06 '24 16:05 RayWangQvQ

🕸️ This has been inactive for 3 days, please confirm if it still needs attention~~

github-actions[bot] avatar May 10 '24 08:05 github-actions[bot]

🚫 This has been inactive for too long and is now closed, feel free to reopen it if needed!

github-actions[bot] avatar May 13 '24 08:05 github-actions[bot]