Asp.net 如何将OwinStartup与WebAPI自主机一起使用

Asp.net 如何将OwinStartup与WebAPI自主机一起使用,asp.net,asp.net-web-api,owin,Asp.net,Asp.net Web Api,Owin,有人能给我解释一下OwinStartup以及如何在自托管web api中使用它吗 这是我在windows服务中的当前代码: public void Configuration(IAppBuilder app) { ConfigureOAuth(app); var config = new HttpSelfHostConfiguration("http://localhost:60065");

有人能给我解释一下OwinStartup以及如何在自托管web api中使用它吗

这是我在windows服务中的当前代码:

public void Configuration(IAppBuilder app)
        {
            ConfigureOAuth(app);
            var config =
               new HttpSelfHostConfiguration("http://localhost:60065");
            WebApiConfig.Register(config);
            app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
            app.UseWebApi(config);
        }

        public void ConfigureOAuth(IAppBuilder app)
        {
            OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions() {

                AllowInsecureHttp = true,
                TokenEndpointPath = new PathString("/token"),
                AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
                Provider = new SimpleAuthorizationServerProvider()
            };

            // Token Generation
            app.UseOAuthAuthorizationServer(OAuthServerOptions);

            app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());

        }

比方说,您可以在控制台应用程序中托管owin。
在这种情况下,您应该执行以下操作:

class Program
{
    static void Main(string[] args)
    {
        string uri = "http://localhost:8080/";

        using (WebApp.Start(uri, Startup.Configuration))
        {
            Console.WriteLine("Started listening on " + uri);
            Console.ReadLine();
            Console.WriteLine("Shutting down...");
        }
    }
}
这就是创业公司:

public class Startup
    {
    public static void Configuration(IAppBuilder app)
        {
            ConfigureOAuth(app);

            WebApiConfig.Register(config);

        app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
            app.UseWebApi(config);
        }

        public void ConfigureOAuth(IAppBuilder app)
        {
            OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions() 
        {
        AllowInsecureHttp = true,
                TokenEndpointPath = new PathString("/token"),
                AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
                Provider = new SimpleAuthorizationServerProvider()
        };

            // Token Generation
            app.UseOAuthAuthorizationServer(OAuthServerOptions);

            app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());

        }
}