OWIN中间件没有;似乎不起作用
本文关键字:不起作用 中间件 OWIN | 更新日期: 2023-09-27 18:22:41
我最近开始学习如何使用Owin规范。我已经添加了Owin包,下面列出了它到Web API 2项目中。我已经评论了WebApiConfig的使用情况,并将routes-config和Elmah Logger移到了Startup类中,如下所示-
Startup.cs - [assembly: OwinStartup("DataServicesStartup", typeof (Startup))]
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseCors(CorsOptions.AllowAll);
var config = new HttpConfiguration();
config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}", new {id = RouteParameter.Optional});
config.Services.Add(typeof (IExceptionLogger), new ElmahExceptionLogger());
ConfigureAuth(app);
JwtConfig.ConfigureOAuth(app);
app.UseWebApi(config);
}
评论WebApiConfig的使用-
protected void Application_Start()
{
WebLocatorIoC.RegisterServices();
AreaRegistration.RegisterAllAreas();
//GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
然而,当我试图去指定的路线时,什么也不会发生。例如,当我尝试向Controllers/ValuesController发出请求时,我使用localhost:1111/api/values。还有Owin。Cors似乎也不起作用。只有当我在WebApiConfig中使用路由和Cors时,它才有效,在这种情况下是WebApi.Cors.
我安装了以下Owin软件包:
Microsoft.AspNet.Identity.Owin
Microsoft.AspNet.WebApi.Owin
Microsoft.Owin
Microsoft.Owin.Cors.
Microsoft.Owin.Diagnostics
Microsoft.Owin.Host.HttpListener
Microsoft.Owin.Host.SystemWeb
Microsoft.Owin.Hosting
Microsoft.Owin.Security
Microsoft.Owin.Security.Cookies
Microsoft.Owin.Security.Facebook
Microsoft.Owin.Security.Google
Microsoft.Owin.Security.Jwt
Microsoft.Owin.Security.Microsoft
Microsoft.Owin.Security.OAuth
Microsoft.Owin.Security.Twitter
Microsoft.Owin.SelfHost
Ninject.Web.Common.OwinHost
Ninject.Web.WebApi.OwinHost
Owin
那么,有人能告诉我我做错了什么吗。
public class ValuesController : ApiController
{
// GET api/values
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
//Other action methods were omitted
}
更新:添加了OWIN启动属性。
我认为您至少缺少一个NuGet包。您可能需要Microsoft.AspNet.WebApi.Core,并且可能希望Microsoft.AspNet.WebApi.Client处理内容协商。