【问题标题】:System.Net.Sockets.SocketException when trying to fill DataTable with TdDataAdapter.Fill() (Teradata DataAdapter)尝试使用 TdDataAdapter.Fill() (Teradata DataAdapter) 填充 DataTable 时出现 System.Net.Sockets.SocketException
【发布时间】:2012-06-29 04:28:24
【问题描述】:

我见过其他人报告System.Net.Sockets.SocketException 异常,但他们主要涉及Web 服务。我们没有调用任何网络服务。事实上,这个 ASP.NET 应用程序是一个单层应用程序,其 UI 和数据层包含在一个程序集中。要检索数据,我们手动打开连接、创建命令并执行读取器或使用数据适配器填充数据表,然后再将其传递到页面。

每月几次尝试执行命令时,我们会收到System.Net.Sockets.SocketException。我不知道是什么原因造成的。如主题所述,我们正在访问 Teradata 数据库,因此我们使用 TdConnection、TdCommand、TdDataAdapter。

cmdSolutionName = New TdCommand(sSql, Con)
daSolutionName.SelectCommand = cmdSolutionName
daSolutionName.Fill(tmpTable) 'Exception is thrown here

有谁知道直接使用数据库连接而不是 Web 服务时会导致此异常的原因是什么?

【问题讨论】:

    标签: .net exception command teradata dataadapter


    【解决方案1】:

    当我们使用 .Net Remoting 连接到另一台主机时,我在工作中看到了同样的错误。 .Net Remoting 使用 TCP\IP 协议,我相信 TdCommand 也使用此协议。 我发现问题的根源是“Trend Micro”进程,它是一种劫持端口 8080 上所有活动套接字的防病毒软件。 也许,您的防病毒软件正在“每月的那个时间”运行扫描并杀死您的所有通信。 如果不是,请尝试考虑其他可能有害的过程。

    【讨论】:

    • 非常有趣的发现。我们的本地开发机器已安装趋势科技。生产盒有一个由趋势科技开发的名为 Trend ServerProtect 的运行服务。显然,我自己无法在服务器上重新配置它,但是您知道如何可以重新配置它以便阻止这种潜在的劫持吗?
    • 这是“趋势科技”的一个错误,我让我的 IT 团队与“趋势科技”的 POC 合作。尝试使用他们的服务。现在,只是为了确保删除安装或禁用扫描,看看你是否停止收到“SocketException”。
    • 由于缺乏其他答案/输入,我给你答案和赏金。我发现你提到趋势科技是一个奇怪的巧合,而这正是我们使用的,所以如果我发现更多关于这方面的信息,我会提供更多细节。
    • 我建议您在应用程序因“SocketException”而崩溃时使用此命令行,然后键入:netstat -aon 打开进程选项卡上的任务管理器,添加“PID”列并在任务管理器上搜索“Trend Micro”PID,然后在命令行输出中查找此 PID 打开通信。这就是我发现“劫持”套接字的方式
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2011-08-13
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    相关资源
    最近更新 更多