如何使用ASP.NET MVC,WebAPI和MEF正确地确定每个请求的组合范围

 纸灰机forever 发布于 2023-02-07 19:22

我最近使用各种资源将MEF添加到MVC/WebAPI应用程序,包括这个答案如何将MEF与ASP.NET MVC 4和ASP.NET Web API集成.虽然这工作了一段时间,但我开始收到与连接数据库相关的间歇性错误,最常见的错误是:"System.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.我现在正在推出自己的解决方案但是由于我不想重新发明轮子,我想我会问是否有人知道有一个已经滚动.

1 个回答
  • 在没有找到任何令我满意的东西之后,我最终在假日期间自己解决了这个问题.CodePlex的MEF贡献有一个良好的开端,但尚未完成.我将其与一些修改合并,并将其与一些研究和反复试验相结合.

    我在Github上创建了一个项目(链接如下,我知道外部链接不受欢迎,但是包含内联的代码太多了).这是四个项目.第一个提供核心组合和拆解,两个库分别将核心放入MVC和WebAPI的上下文中,最后一个只是一个带有两个控制器的快速示例MVC应用程序,每个控制器依赖于另一个注入的类.有一点需要注意,我认为WebAPI项目尚未完成,因为它尚未包含WebAPI过滤器提供程序的设施(也许还有其他我尚未想到或尚未完成的事情).

    我希望这有帮助.

    https://github.com/rlvandaveer/Heliar-Web-Composition

    2023-02-07 19:24 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有