微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以在ASP.NET Core Web Host中运行托管服务吗? 获取System.ObjectDisposedException

如何解决我可以在ASP.NET Core Web Host中运行托管服务吗? 获取System.ObjectDisposedException

我有一个运行ASP.net Core Web Host的ASP.net Core Web API。 在ServiceCollection中,我注册了HostedService来运行订阅消息总线的工作程序。

某些消息来自Web API。一些消息通过工作程序来自消息总线。 它们都被写入数据库

目前,我在将来自工作线程的消息写入数据库时​​遇到了问题,我在依赖项注入的数据访问范围服务上得到了System.ObjectdisposedException。

感觉我的工作人员正在某种程度上将HTTP请求范围用于DI注入的服务。

所以,这可能是由于在ASP.NET Core Web Host中使用Hosted Service造成的吗?

解决方法

请勿在ServiceHosted中读取消息,您应该单独阅读(也许在单例情况下)

如果您正在手动从服务总线中读取消息,则应该不会出现该问题,否则就不应该使用作用域服务。例如,在RabbitMQ中,最佳做法是为每个应用打开连接

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。