Leo*_*aia 12 asp.net iis deadlock asp.net-web-api2 identityserver3
在同一IIS服务器上使用互连的ASP.NET WebApis时,我们遇到了一些死锁.我们想知道这是否是某种预期的行为,因为在同一服务器和相同的应用程序池上托管所有API,因为我们已经设法通过将WebApi移动到另一个池来避免这个问题; 或者如果我们的代码有问题.
对于生产,我们可能会在不同的服务器或池上托管API,但我们仍然想了解为什么会发生这种情况.我们主要担心的是,如果这是我们的错误代码,即使主机设置正确,问题也可以在更大范围内重现.
我们已经创建了一个小解决方案来重现在GitHub中托管的死锁.
复制步骤如下:
预期的行为是最终解决所有请求.
实际行为是,某些请求完成,而其他一些请求将失败,因为TaskCancelledException
这似乎是由于请求超时.
我能找到的唯一一篇文章似乎提到同一个问题是从2014年开始:" 不要向同一台服务器发送ServerXMLHTTP或WinHTTP请求 ",我相信这是我们遇到的问题,我们怎样才能确认这一点?
上下文
我们被分配了为我们所在公司的多个内部API创建集中式身份验证服务器的任务.我们使用带有引用标记的IdentityServer3,因此当某些API使用引用标记请求第二个API时,第二个API将请求验证服务器进行标记验证,以再现该问题.
我添加了IdentityServer标记,因为在进行多个API通信和使用引用标记时,这可能是一个常见问题.GitHub上的示例.
归档时间: |
|
查看次数: |
1033 次 |
最近记录: |