IIS ASP.NET WebApi在请求同一台服务器时死锁
|
在同一个IIS服务器上使用互连的ASP.NET WebApis时,我们遇到了一些死锁.我们想知道这是不是一个预期的行为,因为在同一个服务器和同一个应用程序池上托管所有的API,因为我们设法通过将WebApi移动到不同的池来避免这个问题;或者如果我们的代码有问题. 对于生产,我们可能会在不同的服务器或池中托管API,但是我们仍然希望了解为什么会发生这种情况.我们主要关注的是,如果这是我们错误的代码,那么即使主机设置正确,该问题也可能会更大规模地复制. 我们创造了一个解决方案来重现僵局,hosted in GitHub. 复制步骤如下: > WebClient并行执行多个HTTP请求WebApi1. 预期的行为将是所有请求最终被解决. 实际的行为是某些请求完成,而其他一些请求将会失败,这是由于TaskCancelledException似乎是由于请求超时而导致的. 从2014年开始,我能够发现的唯一可以看到的同样的问题是“Do Not Send ServerXMLHTTP or WinHTTP Requests to the Same Server”,我相信这是我们遇到的问题,我们如何才能确认呢? 上下文 我们被分配了为我们工作的公司的多个内部API创建集中式身份验证服务器的任务. 我添加了IdentityServer标签,因为在执行多个API通信和使用引用令牌时,这可能是一个常见问题. Sample on GitHub. 解决方法只需一个观察:您正在使用HttpClient作为每个控制器的静态成员,根据 this HttpClient不能保证线程安全(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – MVC3 Url.Action查询字符串生成
- asp.net-mvc – MVC4 Action返回没有null的JsonResult
- 在ASP.Net Cookie或会话状态中存储会话信息?
- asp.net – 替换web.config变换中的IIS重写规则
- asp.net-mvc – 从MVC版本1迁移后,ASP.NET MVC 2 actionlin
- asp.net-mvc – Silverlight 3是否会改变MVC与Silverlight的
- asp.net-mvc-3 – 如何模拟查询字符串
- asp.net-mvc-5 – 如何在没有数据库的情况下使用ASP.NET Id
- asp.net-mvc – 使用ASP.NET MVC的IIS应用程序请求路由(ARR
- asp.net-web-api – 使用Owin时无法获取ASP.NET Web API 2帮
- asp.net-mvc – 如何继承ASP.NET MVC控制器并仅更
- asp.net – 如何可靠地跟踪CSS使用情况?
- asp.net-mvc-2 – 实体框架4 CTP 4/CTP 5通用存储
- ASP.NET MVC中的角色缓存策略
- asp.net – 如何获得Google Prettify更像Visual
- asp.net-core – 访问Raw Request Body
- asp.net-mvc – Internet Explorer缓存asp.netmv
- asp.net-mvc – ASP.NET MVC中的动态网站地图
- asp.net-mvc-3 – 当HTTP响应状态设置为400时,II
- IIS ASP.NET vs(NGINX FastCGI Mono或XSP)的性能
