我有一个问题,结果忽略 5000 毫秒的等待超时并在 .Result 完成时返回它...这导致我的 IIS 崩溃,因为对 IIS 的所有请求都没有超时并创建一个很长的队列和执行时间。
编辑:澄清:如果等待超过 5000 毫秒,它应该返回“123;NK”。
public class Client : IMotorClient
{
private IMotorProxy Link { get; set; }
//private IOfficeGenerator OfficeGenerator { get; set; }
private IOfficeRegistryLegacy OfficeRegistry { get; set; }
public WebInternalGatewayClient(IMotorProxy proxy, IOfficeRegistryLegacy officeRegistry)
{
OfficeRegistry = officeRegistry;
Link = proxy;
}
public string Execute(string host, int port, string command)
{
var officeGuid = OfficeRegistry.GetOfficeGuid(host, port);
var result = "";
var task = Task.Run(() => result = Link.Submit(officeGuid, command).Result);
var value = task.Wait(TimeSpan.FromMilliseconds(5000));
if (!value)
{
result = "123;NK;";
}
return result;
}
}