C#Web API调用仅在长时间运行时返回401.1

时间:2017-06-27 22:02:52

标签: authentication asp.net-web-api https windows-authentication http-status-code-401

我有一个由Windows身份验证保护的Web API方法。这是客户端代码:

var uri = new Uri(@"https://myapi.mysite.com/api/method");
var request = HttpWebRequest.Create(uri);
request.Method = "GET";
request.ContentLength = 0;
request.ContentType = "application/json";
request.Timeout = 30 * 60 * 1000;

request.Credentials = new NetworkCredential("userName", "password", "domain");

using (var response = request.GetResponse())
{
    using (var responseStream = new StreamReader(response.GetResponseStream()))
    {
        Console.WriteLine(responseStream.ReadToEnd());
    }
}

https://myapi.mysite.com/api/method返回时间不到5分钟时,一切都很顺利。只要需要5分钟或更长时间(5分钟似乎是一个神奇的数字),我就会开始回归401。我两次使用相同的凭据。除了服务器正在处理的数据量之外,一切都是相同的(显然更多的数据导致更长的处理时间)。

具体的401我得到的是401 - Unauthorized: Access is denied due to invalid credentials.'消息。

我已经尝试过KeepAlive,CredentialCache,设置服务器超时和许多其他选项/方法,并且无法正常工作。

服务器是在密码永不过期的服务帐户下运行的IIS 7.5。

任何帮助都将不胜感激。

0 个答案:

没有答案