RestSharp POST 未从 Azure 环境返回任何内容,但在本地返回
RestSharp POST not returning anything from Azure environment, but does locally
我已经进行了数十次此类调用,但出于某种原因,这在我的 Azure 测试环境中不起作用,但在我的本地主机上运行得很好。结果从来没有 returns 来自我的服务,甚至没有超时错误或“0”响应,什么都没有。调用 api 端点时我可能会遗漏什么?我的日志中也没有错误。
我能够得到响应的唯一方法是 删除 超时 = 2700000,在这种情况下它 return 是“0”响应.但是我的通话时间超过了几分钟,所以如果没有设置超时,它总是 return 一个“0”响应。
更新:我也尝试过使用 await/async 调用,但也不成功。
更新:我从 restsharp 切换并改用 Httpclient 调用,结果仍然相同。所以我什至不认为这只是一个休息问题。
var appSettings = ConfigurationManager.AppSettings;
var restClient = new RestClient(appSettings["Url"]);
var request = new RestRequest("api/Sync")
{
Method = Method.POST,
Timeout = 2700000,
RequestFormat = DataFormat.Json
};
request.AddHeader("authUser", appSettings["username"]);
request.AddHeader("authPass", appSettings["password"]);
request.AddHeader("Content-Type", "application/json");
var body = JsonConvert.SerializeObject(deserializeItem);
request.AddParameter("application/json; charset=utf-8", body, ParameterType.RequestBody);
var result = restClient.Execute(request);
var response = JsonConvert.DeserializeObject<ResultObj>(result.Content);
所以为了解决这个问题,我不得不输入:
System.Net.ServicePointManager.SetTcpKeepAlive(真, 180000, 60000);
我的 Web 作业和服务之间的连接由于闲置不活动而超时。
我已经进行了数十次此类调用,但出于某种原因,这在我的 Azure 测试环境中不起作用,但在我的本地主机上运行得很好。结果从来没有 returns 来自我的服务,甚至没有超时错误或“0”响应,什么都没有。调用 api 端点时我可能会遗漏什么?我的日志中也没有错误。
我能够得到响应的唯一方法是 删除 超时 = 2700000,在这种情况下它 return 是“0”响应.但是我的通话时间超过了几分钟,所以如果没有设置超时,它总是 return 一个“0”响应。
更新:我也尝试过使用 await/async 调用,但也不成功。 更新:我从 restsharp 切换并改用 Httpclient 调用,结果仍然相同。所以我什至不认为这只是一个休息问题。
var appSettings = ConfigurationManager.AppSettings;
var restClient = new RestClient(appSettings["Url"]);
var request = new RestRequest("api/Sync")
{
Method = Method.POST,
Timeout = 2700000,
RequestFormat = DataFormat.Json
};
request.AddHeader("authUser", appSettings["username"]);
request.AddHeader("authPass", appSettings["password"]);
request.AddHeader("Content-Type", "application/json");
var body = JsonConvert.SerializeObject(deserializeItem);
request.AddParameter("application/json; charset=utf-8", body, ParameterType.RequestBody);
var result = restClient.Execute(request);
var response = JsonConvert.DeserializeObject<ResultObj>(result.Content);
所以为了解决这个问题,我不得不输入: System.Net.ServicePointManager.SetTcpKeepAlive(真, 180000, 60000);
我的 Web 作业和服务之间的连接由于闲置不活动而超时。