我正在调查 Microsoft 的反向 AJAX 示例,其中他们在 ScriptManager 中使用了长时间超时
<asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="2147483647">
还有一个 ManualResetEvent 来控制等待:
private ManualResetEvent messageEvent = new ManualResetEvent(false);
public Message DequeueMessage()
{
// Wait until a new message.
messageEvent.WaitOne();
}
public void EnqueueMessage(Message message)
{
lock (messageQueue)
{
messageQueue.Enqueue(message);
// Set a new message event.
messageEvent.Set();
}
}
我注意到了
- 将 AsyncPostBackTimeout 设置为较低的值 (5) 不会导致脚本超时或失败
<httpRuntime executionTimeout="5"/>
在 web.config 中似乎没有效果当执行时间过长时,以下 javascript 似乎不会运行
Sys.WebForms.PageRequestManager.getInstance() .add_endRequest(function (sender, args) { if (args.get_error() && args.get_error().name === 'Sys.WebForms.PageRequestManagerTimeoutException') { alert('Caught a timeout!'); // remember to set errorHandled = true to keep from getting a popup from the AJAX library itself args.set_errorHandled(true); } });
这让我问这些问题
影响此代码执行的正确 IIS 设置和 .js 回调是什么?
当此应用程序扩展时,IIS 基础结构的哪些部分受到压力?
如果这成为基于 WAS 的 WCF 服务,#2 中的任何内容会发生变化吗?