Asp.net web api 在WebApi 2项目中使用FoundationDB

Asp.net web api 在WebApi 2项目中使用FoundationDB,asp.net-web-api,foundationdb,Asp.net Web Api,Foundationdb,我目前正在一个.NETWebAPI 2项目中试验FoundationDB。WebApi控制器对foundationdb集群执行一个简单的getrange,一切正常。。。如果我只运行一次项目 第二次运行它时,我遇到了可怕的api版本设置错误,让一切重新启动并运行的唯一方法是重新启动IIS。我发现了类似的问题,答案中提出的唯一解决方案是在每个应用程序域中运行一个进程,这并不理想 我也尝试过.Net库中使用的hack,但它所做的只是将api版本设置错误切换到网络设置或违背承诺。 还有其他人找到更好的解

我目前正在一个.NETWebAPI 2项目中试验FoundationDB。WebApi控制器对foundationdb集群执行一个简单的getrange,一切正常。。。如果我只运行一次项目

第二次运行它时,我遇到了可怕的api版本设置错误,让一切重新启动并运行的唯一方法是重新启动IIS。我发现了类似的问题,答案中提出的唯一解决方案是在每个应用程序域中运行一个进程,这并不理想

我也尝试过.Net库中使用的hack,但它所做的只是将api版本设置错误切换到网络设置或违背承诺。 还有其他人找到更好的解决办法吗


PS:为了暂时解决这个问题,我将WebApi作为自主机运行,这似乎可以解决问题,但在测试环境之外,将FoundationDB与WebApi结合使用会让人恼火。

出于同样的原因,这个问题仍然存在于5.x版中。每个进程只能创建和关闭一次网络线程,因此每个进程使用多个应用程序域的任何主机都无法工作。似乎没有任何动机来解决这个问题,因为这个问题主要只会影响到管理平台,比如.NET,也许是Java

幸运的是,由于ASP.NET核心和Kestrel等web主机已退出进程,并且不使用AppDomains,因此这个问题将变得毫无意义

这仍然会导致尝试在运行之间缓存进程的单元测试运行程序出现问题。您需要禁用此缓存功能才能使其可靠运行