【问题标题】:ASP.NET MVC 6 AspNet.Session Errors - Unable to resolve injected dependency?ASP.NET MVC 6 AspNet.Session 错误 - 无法解析注入的依赖项?
【发布时间】:2015-07-23 18:28:23
【问题描述】:

我在使用 ASP.NET MVC 6 (vNext) 中的新 Microsoft.AspNet.Session 功能时遇到了问题。

访问所有页面时都会发生该错误,包括那些本身不使用会话功能的页面。我对所有东西都使用 beta4 版本,包括我所有的包和我的 dnvm 环境。该项目在 Visual Studio 2015 RC 上运行。

这里有一些可能很重要的资源(如果还有其他任何需要评论的人):

我认为会话包的依赖注入存在问题(请参阅堆栈跟踪的前两行),但之后我不知道该怎么办。

【问题讨论】:

  • 看起来您没有在 DI 容器中配置 IOptions<SessionOptions>
  • FWIW,你真的应该考虑迁移到 beta5 版本。如果不能,则需要注册选项服务。有关更多信息,请参阅下面的答案。
  • 我想要,但我需要的一些软件包最迟是 beta4... :/ 谢谢你的建议

标签: asp.net asp.net-mvc session asp.net-core-mvc dnvm


【解决方案1】:

您确定您已在ConfigureServices 中正确注册了相应的服务吗?

public class Startup {
    public void ConfigureServices(IServiceCollection services) {
        services.AddOptions();
        services.AddSession();
    }

    public void Configure(IApplicationBuilder app) {
        app.UseSession();
    }
}

注意:您需要在使用 beta4 包时明确注册选项服务。 最近修复了这个问题:https://github.com/aspnet/Session/commit/dab08ba7e90027a3bf1ef69f740427e93a310f09#diff-2990206dea5be4b3850cad8d4759d577R14

【讨论】:

  • 感谢您的回答,但是在添加所有这三个(我没有 x{ )后,我得到了一个关于缓存的新的类似错误。这是我的 Startup.cs (pastebin.com/5869Gztn) 和新错误 (puu.sh/jawt8/44cc8f6191.png)。如果您查看 Startup.cs pastebin,您可以看到我在哪里添加了 services.AddCaching() 以尝试修复它。 - 这就是奇怪的地方 - 添加它后,我又开始遇到完全相同的错误。它是可重复的,我不知道为什么。
猜你喜欢
  • 2015-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-17
相关资源
最近更新 更多