我从 ISession Execute() 方法中收到一个奇怪的异常:
Excepted ResultResponse, obtained Cassandra.Responses.SupportedResponse
// "Excepted" typo is intentional - copied straight from the source
Stack Trace:
at Cassandra.Requests.RequestExecution.ValidateResult(Response response)
at Cassandra.Requests.RequestExecution.HandleRowSetResult(Response response)
at Cassandra.Requests.RequestExecution.HandleResponse(IRequestError error, Response response, Host host)
这是由对 Session.Execute() 的调用引发的,该调用在 Docker 化的 Web 服务中每秒几乎不断地被调用多次。这种情况很少见,有时似乎与超时率升高相一致,但并非每次超时都会发生,在给定的超时突发期间只会发生一两次。
我在 DataStax C# 驱动程序中找不到任何有关“SupportedResponse”的信息,除了版本 2.7.1 中的这个存根:https://www.fuget.org/packages/CassandraCSharpDriver/2.7.1/lib/net40/Cassandra。 dll/Cassandra/SupportedResponse
但我使用的是 3.22.0 版本(如果重要的话还可以使用 .NET8/C#12)。
我宁愿不必做类似的事情
var response = Session.Execute(...);
if (typeof(response) == typeof(SupportedResponse))
{
...
}
但如果这是一个我现在必须解决的已知问题,我可能不得不这样做。
大部分代码与此专有/机密相关,但如果需要,我可以整理一个通用示例。
提前致谢!
我需要与 stackexchange 团队交谈。