asp.net-mvc – 如何使用ASP.NET MVC,WebAPI和MEF为每个请求正确
我最近使用各种资源将MEF添加到MVC / WebAPI应用程序中,包括这个SO答案
How to integrate MEF with ASP.NET MVC 4 and ASP.NET Web API.虽然这有效一段时间,但我开始收到与连接数据库有关的间歇性错误,最常见的错误是:“系统.InvalidOperationException:Timeout expired.从池中获取连接之前经过的超时时间.这可能是因为所有池连接都在使用中并且达到了最大池大小.
我意识到我正在泄漏连接,但不明白为什么.我的所有存储库都实现了IDisposable并在完成时处理了它们的连接.在我的配置方法中加入断点很快就会发现它们永远不会被击中.当我将代码基于上面链接的示例时,我注意到没有任何清理,但是对MEF和MVC不熟悉我错误地认为清理是在MVC的/ MEF的依赖管道中的某个地方完成的. 我想知道其他人如何在MVC和WebAPI中使用MEF来解决每个请求的组合范围? 我已经在这里和那里找到了模糊的指导,它们都面向MVC或WebAPI. Mef.codeplex在这里有一个几乎完整的MVC中心解决方案:https://mef.codeplex.com/releases/view/79090但它基于MVC的预览版本.我在这里找到了一个WebAPI解决方案:https://github.com/WebApiContrib/WebApiContrib.IoC.Mef.我现在正在推出自己的解决方案,但由于我不想重新发明轮子,我想我会问是否有人知道有一个已经滚动. 解决方法
在没有找到任何令我满意的东西之后,我最终在假日期间自己解决了这个问题. CodePlex的MEF贡献有一个良好的开端,但尚未完成.我将其与一些修改合并,并将其与一些研究和反复试验相结合.
我在Github上创建了一个项目(链接如下,我知道外部链接不受欢迎,但是包含内联的代码太多了).这是四个项目.第一个提供核心组合和拆解,两个库分别将核心放入MVC和WebAPI的上下文中,最后一个只是一个带有两个控制器的快速示例MVC应用程序,每个控制器依赖于另一个注入的类.有一点需要注意,我认为WebAPI项目尚未完成,因为它尚未包含WebAPI过滤器提供程序的设施(也许还有其他我尚未想到或尚未完成的事情). 我希望这有帮助. https://github.com/rlvandaveer/Heliar-Web-Composition (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – ASP .Net VNext和Owin
- 使用CodeMirror在浏览器中实现编辑器的代码高亮效果
- asp.net – 地理位置网络服务建议
- 什么时候应该在ASP.NET控件中使用#和=
- .NET Core 3.0及ASP.NET Core 3.0 前瞻
- asp.net-mvc-3 – 为MVC3应用程序配置Ninject的正确方法是什
- .NET Core多平台项目模板eShopOnContainers编译手记
- asp.net-mvc-3 – 找不到ASP.NET MVC 3 HttpPost操作方法
- asp.net-core – 简化的IOptions方法
- asp.net-mvc – 嵌套TagBuilder -as TagBuilderTree-