c# - 当 Web 服务返回结果时,您如何检测连接何时中断?

标签 c# exception connection detect web-services

在 C# ASP .NET 应用程序中,我有一个 Web 服务接收数据集、处理它并返回它。

如果连接速度较慢,返回它最多可能需要一分钟。如果该连接在 Web 服务方法的最后一行运行后但数据仍在发送时中断,后台会发生什么情况?

我尝试将 Web 服务的代码包装在一个 catch block 中,并在下载时断开连接,但 Web 服务中没有抛出异常。我会像这样检测错误:

[WebMethod(Description = "Process data")]
public DataSet Process(DataSet data)
{
   bool success = true;
   StartDatabaseTransaction();
   DataSet result = Process(data);
   try
   {
      return result; //quickly pull out cable after running this
   }
   catch
   {
      success = false;  //never gets here
   }
   finally 
   {
      if (success) CommitTransaction(); else RollBackTransaction();
   }
   return null;
}

最佳答案

如果我正确阅读了您的问题和代码,由于网络方法的工作方式,您将永远不会成功。如果您希望捕获超时错误,则需要在数据集的接收方法中。在返回点,网络服务器正在转换和传输数据。

关于c# - 当 Web 服务返回结果时,您如何检测连接何时中断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1572506/

相关文章:

linux - 查看哪个是eth0和eth1(服务器,客户端)

c# - 如何在多层应用程序中向用户显示异常详细信息以供解决

c# - 引用列表项构造 C# Lambda 表达式

c# - 使用 C# 抓取 HTTPS 屏幕

c# - 不要破坏负载

java - 使用 @ControllerAdvice 注释的类处理异常时丢失堆栈跟踪

azure - 从外部访问 Azure 云上的 Cassandra Node

c - scanf 的问题,C. 浮点异常

c++ - std::list<int> 的默认构造函数可以抛出吗?

go - 初始化/管理并发 SSH 连接