重启.Net 1.1服务时,我需要延迟30秒超时。由于后勤原因,我无法升级到.Net 2.0以利用ServiceBase.RequestAdditionalTime()方法。
一种解决方法是在代码的开头调用SetServiceStatus。但是,出于依赖性目的,我需要在设置之前执行所有代码。
我还研究了设置注册表项ServicesPipeTimeout,但是我真的不想对所有服务进行全局更改,因为我不知道可能会产生什么影响。
是否有相当于在.Net 1.1中调用ServiceBase.RequestAdditionalTime()方法的内容?
答案 0 :(得分:1)
如果你看一下.NET 2.0中ServiceBase.RequestAdditionalTime方法的源代码(使用像ILSpy这样的反编译器工具),你会发现它在概念上做了两件事:
dwWaitHint
字段您可以使用P/Invoke在.NET 1.1中实现相同的功能,以便与Win32 API进行交互。