是否可以使用owin在Visual Studio 2010 / Framework 4中自我托管Web Api

时间:2014-05-14 08:17:20

标签: c# .net asp.net-web-api

我正在尝试使用像此处的owin运行自托管的web api应用程序

http://www.asp.net/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api

public class Program 
{ 
    static void Main() 
    { 
        string baseAddress = "http://localhost:9000/"; 

        // Start OWIN host 
        using (WebApp.Start<Startup>(url: baseAddress)) 
        { 
            Console.WriteLine("App started");
            Console.ReadLine();
        } 
    } 
} 


public class Startup 
{ 
    // This code configures Web API. The Startup class is specified as a type
    // parameter in the WebApp.Start method.
    public void Configuration(IAppBuilder appBuilder) 
    { 
        // Configure Web API for self-host. 
        HttpConfiguration config = new HttpConfiguration(); 
        config.Routes.MapHttpRoute( 
            name: "DefaultApi", 
            routeTemplate: "api/{controller}/{id}", 
            defaults: new { id = RouteParameter.Optional } 
        ); 

        appBuilder.UseWebApi(config); 
    } 
} 

public class ValuesController : ApiController 
{ 
    // GET api/values 
    public IEnumerable<string> Get() 
    { 
        return new string[] { "value1", "value2" }; 
    } 

}

哪个事件。

我尝试通过nuget安装Microsoft.AspNet.WebApi(Web Api 2.1)因为框架4.5的要求而失败,所以我安装了AspNetWebApi(Web Api)。

但我无法在任何地方找到扩展方法UseWebApi。我是否必须安装另一个软件包,或者无法使用Framework 4托管Web API?

2 个答案:

答案 0 :(得分:1)

我认为您不能使用OWIN,您可以使用此方法使用Visual Studio 2010和.NET Framework 4.0创建自托管的Web API: http://www.asp.net/web-api/overview/older-versions/self-host-a-web-api

虽然不建议将这种方法用于新设计,但由于我们现有代码库的依赖性,我不得不使用.NET Framework 4.0。这篇文章是用Visual Studio 2012编写的,但我刚用Visual Studio 2010测试了服务器端,看起来工作正常。我使用Postman而不是客户端示例。

答案 1 :(得分:0)

可能不是因为自托管软件包依赖于System.Web.Http.Owin,它是在.Net 4.5中构建的。除非,您已准备好在https://katanaproject.codeplex.com/SourceControl/latest#README

使用Microsoft源代码重写托管内容