ASP.NET Web API - OWIN - TokenEndPointPath无法在IIS中运行

时间:2015-09-29 21:09:09

标签: asp.net-web-api asp.net-web-api2 owin

我的startup.cs中有以下代码。设置TokenEndpointPath在IIS Express中以及将Web API项目部署到IIS中的网站根目录时都能很好地工作。但是,如果我在IIS中调用令牌端点的嵌套应用程序(即网站中的应用程序),则会产生404.有没有办法将TokenEndpointPath基于实际的IIS结构而不是root,因为它在这吗?现在:

此作品

http://server:80/api/token

这不是

http://server:80/app/api/token

    var request = HttpContext.Current.Request;
    app.UseOAuthAuthorizationServer(newOAuthAuthorizationServerOptions
    {
        AllowInsecureHttp = true,
        TokenEndpointPath = newPathString("/api/token"),
        AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(oauthTokenTimeoutInMinutes), 

        Provider = new Provider.ActiveDirectoryAuthorizationServerProvider()
    });

2 个答案:

答案 0 :(得分:1)

如评论所述,我已通过设置TokenEndpointPath = new PathString("/api/Token")来测试您的问题。首先,我的connectionString如下所示:

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-WebApi-20150818041808.mdf;Initial Catalog=aspnet-WebApi-20150818041808;Integrated Security=True" providerName="System.Data.SqlClient" />    
  </connectionStrings>

将项目发布到本地IIS(7.5)后,在向

发送POST请求时获得500错误响应
  

gulp

然后我更新了connectionString,如下所示:

<connectionStrings>    
    <add name="DefaultConnection" connectionString="Data Source=192.168.1.247;Initial Catalog=MyDB;Integrated Security=True;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />
  </connectionStrings>

它的作用类似于以下屏幕截图:

http://localhost/webapi/api/token

答案 1 :(得分:0)

也许有人仍在寻找解决方案,这可能会有所帮助: enter image description here

确保您有 HTTPS 或将其设置为“true”。