我正在使用 WCF REST 服务(.Net 4.0)创建一个客户端-服务器应用程序,我在那里看到了非常奇怪的错误。要访问我使用 HttpClient 类的服务,代码如下所示:
public TResponse Post<TRequest, TResponse>(Uri uri, TRequest request)
using (HttpClient client = new HttpClient())
{
client.TransportSettings.Credentials = CredentialCache.DefaultCredentials;
client.TransportSettings.ConnectionTimeout = TimeSpan.FromSeconds(200);
using (HttpResponseMessage response = client.Post(uri, HttpContentExtensions.CreateDataContract(request, null)))
{
response.EnsureStatusIsSuccessful();
return response.Content.ReadAsDataContract<TResponse>();
}
}
}
我在 IIS7 上托管我的服务,并且当启用匿名身份验证时一切正常,但是当我打开 Windows 身份验证时,一些随机请求(平均 10 个)因 400-Bad 请求状态而失败,并且错误消息是:Bad Request - Invalid动词。HTTP 错误 400。请求动词无效。
会是什么呢?
还有一点更新:如果打开 fiddler,一切正常。