[英]Configure a timeout in web.config for a web service
我有一個托管在 IIS 7.5 中的 web 服務。 web 服務工作正常。 我嘗試在 web.config 中配置超時,但我做不到。 我在我的 web.config 中試過:
<Configuration>
<system.web>
<compilation debug="false" targetFramework="4.8" />
<httpRuntime targetFramework="4.8" executionTimeout="10" /> <!-- 10 seconds -->
<sessionState timeout="2" /> <!-- 2 minutes -->
</system.web>
</Configuration>
在 web 服務 controller 中:
Thread.Sleep(180000) //3 minutes
我認為執行會在 10 秒后停止,但它會在 1 分鍾后停止,無論我在“executionTimeout”和“timeout”參數中輸入什么。 我在 IIS 中進行了搜索,但無法找到這一分鍾對應的內容。
有人有想法嗎?
IIS 超時或 httpruntime 執行超時將無法終止睡眠線程。
如您所見,線程睡眠不受 IIS 的限制
要使執行超時起作用,您需要執行實際過程而不是線程睡眠。
因此,如果您需要實現這一點,請在您的代碼中嘗試類似的操作。
thread.Start();
thread.Join(1500);
thread.Abort();
或使用CancellationTokenSource()
和CancelAfter(10000)
。
Jokies Ding:感謝 CancellationToken。 你給我指路了。 並且感謝這個鏈接: 如果線程花費太長時間,如何停止線程我使用比原始線程更干凈的任務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.