【问题标题】:Why do I get "Cannot resolve symbol 'CreatePerOwinContext'"?为什么我会收到“无法解析符号 'CreatePerOwinContext'”?
【发布时间】:2015-02-28 10:39:31
【问题描述】:

我有一个自托管的 o​​win Web Api,我正在尝试为每个 Owin 请求使用我的 EF 上下文的单个实例。这是我的启动类的配置代码。

public void Configuration(IAppBuilder app)
{         
    app.CreatePerOwinContext(A3Context.Create);
}

这不会构建,因为我收到以下错误。

错误

5 'Owin.IAppBuilder' 不包含 'CreatePerOwinContext' 并且没有扩展方法 'CreatePerOwinContext' 可以找到接受“Owin.IAppBuilder”类型的第一个参数 (您是否缺少 using 指令或程序集引用?)

我错过了一个我不知道的参考资料吗?

【问题讨论】:

标签: c# asp.net owin self-hosting


【解决方案1】:

CreatePerOwinContext 是 Microsoft.AspNet.Identity.Owin NuGet 包中的扩展方法。

要解决此问题,请为您的项目打开包管理器控制台并使用以下命令进行安装:

Install-Package Microsoft.AspNet.Identity.Owin

确保您引用的是包含扩展方法的命名空间:

using Owin;

【讨论】:

  • 同样的错误但是...."Web 已经引用了 'Microsoft.AspNet.Identity.Owin 2.2.1'。"
  • Resharper 为我提供了添加对 dll 的引用的选项,并且它起作用了。一定是项目搞混了。
  • @IanWarburton - 很高兴你把它清理干净了。该错误意味着该包已经在您正在运行该命令的项目的 packages.config 中。需要注意的一件事是,如果您有多个项目,则调用此代码的每个项目都需要在其自己的 packages.config 中包含该包。 Resharper 不会为您做这些,它只是复制 DLL 引用。这意味着,在新结帐时,nuget 不会将解决方案恢复到构建状态。如果 DLL 有它,你只需要确保你有“使用 Owin”;命名空间来访问扩展方法。
  • Resharper 应该运行 nuget 或至少更新软件包文件。
  • 使用 ASP.NET 5 (DNX 4.5.1) 我可以添加包和引用,但仍然没有 IApplicationBuilder 的 Owin 扩展(我假设以前称为 IAppBuilder),@cchamberlain?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-27
  • 1970-01-01
  • 2016-10-18
  • 2018-08-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多