当请求中止时,IIS / C#中会发生什么

时间:2012-07-05 18:13:31

标签: c# ajax iis xmlhttprequest

所以我正在考虑用户粘贴链接的功能,服务器端代码抓取提供的链接并响应该链接的内容(例如页面标题,描述,缩略图等)。

用户可以同时更改链接,在这样做时,ajax-request应该在客户端中止。

我想知道IIS服务器到底发生了什么,特别是我的C#代码。

  • 响应线程终止了吗?
  • Response对象现在是返回null,还是Response.Write抛出异常?
  • 响应线程中抛出的异常只是在哪里? (那个甚至没有意义,但无论如何)

4 个答案:

答案 0 :(得分:4)

如果服务器代码检查Response.IsClientConnected的状态,它可以在客户端中止请求时停止工作并产生空响应,否则它将照常完成请求。

请求处理不会因为没有人再等待而自动中止。服务器代码必须主动检查请求的状态。

答案 1 :(得分:2)

您的网络服务器不知道客户端取消了请求。该请求仍将得到满足,并将发回回复。您编写的客户端脚本需要能够处理页面的当前状态。

如果您确定不关心响应,我建议中止请求客户端:

xhr.abort()

答案 2 :(得分:0)

如果在写入响应之前关闭连接客户端,则会发出错误信息,说明引发了多少错误。您可以选择在从服务器返回时不处理响应。

答案 3 :(得分:0)

将请求发布到服务器后,IIS将开始执行服务器端代码。现在,服务器可以决定是否需要执行代码。

在整个页面循环中,您可以检查Guffa提到的Request.IsClientConnected并终止执行。

但是,这完全取决于你的情景。

希望它有所帮助。