我的startup.cs中有以下代码。设置TokenEndpointPath在IIS Express中以及将Web API项目部署到IIS中的网站根目录时都能很好地工作。但是,如果我在IIS中调用令牌端点的嵌套应用程序(即网站中的应用程序),则会产生404.有没有办法将TokenEndpointPath基于实际的IIS结构而不是root,因为它在这吗?现在:
此作品
这不是
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()
});
答案 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错误响应然后我更新了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>
它的作用类似于以下屏幕截图:
答案 1 :(得分:0)