在 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/