小编Hun*_*ipo的帖子

如果OWIN使用Ninject OWINHost自托管应用程序需要system.web吗?

我正在尝试使用Ninject创建一个带有OWIN自托管WebAPI的Windows服务.我得到了它的工作,但我不得不添加对system.web的引用,这似乎是错误的.没有对system.web的引用我得到了这些编译错误:

"System.Web.Routing.RouteCollection"类型在未引用的程序集中定义.您必须添加对程序集'System.Web,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用.

类型'System.Web.Routing.Route'在未引用的程序集中定义.您必须添加对程序集'System.Web,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用.

根据本文设置OWIN WebApi应用程序添加Ninject之后出现错误

我还必须将Microsoft.Owin限制为版本2.1.0,以便Ninject工作.在服务启动期间,Ninject正在寻找Owin 2.1.0.如果你得到最新的Microsoft.Owin它将滚动到3.0.

我正在使用的三个主要NuGet包是:

Microsoft.AspNet.WebApi.OwinSelfHost

Ninject.Web.Common.OwinHost

Ninject.Web.WebApi.OwinHost

这是我的所有包(请注意Microsoft.Owin上的约束)

  <package id="Microsoft.AspNet.WebApi" version="5.2.2" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.2" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.Core" version="5.2.2" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.Owin" version="5.2.2" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.OwinSelfHost" version="5.2.2" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.2" targetFramework="net45" />
  <package id="Microsoft.Owin" version="2.1.0" targetFramework="net45" allowedVersions="(,2.1]" />
  <package id="Microsoft.Owin.Host.HttpListener" version="3.0.0" targetFramework="net45" />
  <package id="Microsoft.Owin.Hosting" version="2.0.2" targetFramework="net45" />
  <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net45" />
  <package id="Ninject" version="3.2.2.0" …
Run Code Online (Sandbox Code Playgroud)

c# ninject self-hosting asp.net-web-api owin

12
推荐指数
1
解决办法
3030
查看次数

标签 统计

asp.net-web-api ×1

c# ×1

ninject ×1

owin ×1

self-hosting ×1