更改Microsoft.Owin.Testing.TestServer的HttpClient上的超时无效

时间:2019-01-24 10:06:55

标签: c# asp.net-web-api httpclient

我正在使用.net 461,Microsoft.AspNet.WebApi 5.2.3

var testServer = Microsoft.Owin.Testing.TestServer.Create<MyConfig>();

//this has no effect, and Timeout is still the default 100 seconds
testServer.HttpClient.Timeout = TimeSpan.FromSeconds(200); 

如果我这样做,那么设置将生效:

var client = new HttpClient
{
   BaseAddress = new Uri("baseaddress")
};

client.Timeout = TimeSpan.FromSeconds(200); // this change has effect

为什么不能在第一个代码段中更改TimeOut属性?

1 个答案:

答案 0 :(得分:4)

https://docs.microsoft.com/en-us/previous-versions/aspnet/dn782655(v%3dvs.113)

  

HttpClient
  返回一个新的HttpClient,它包装了Handler并为   能够向OWIN管道提交请求。

因此,每次调用testServer.HttpClient时,都会为您创建一个新的HttpClient实例,这就是您的更改无效的原因。