我们有一个来自第 3 方的庞大 .NET 应用程序,反汇编和理解代码会很耗时。它是在发布模式下编译的。MS SQL 数据库的连接字符串被定义在配置文件中,它们似乎是正确的。它使用超过 6 个不同的数据库。
但是,当应用程序启动时,它会引发错误,例如“与 sql server 建立连接时发生网络相关或特定于实例的错误” 应用程序的跟踪没有提供足够的信息,它在失败时尝试连接的位置。
是否可以在事先不知道它尝试连接哪个 SQL 服务器名称的情况下分析 .NET 应用程序尝试打开的连接?SQL 配置文件跟踪从其他机器打开的服务器端的连接,但是在特定机器上查看它连接到的 SQL 服务器的最佳工具是什么(也有可能看到不成功的连接)
嗅探流量,因为这是唯一确定的方法。
严重地。嗅探交通。没有什么比对通过嗅探发出类似消息的黑匣子进行故障排除更好的了。
如果您反对使用第三方软件,请安装Microsoft Network Monitor(或新的Microsoft Message Analyzer)。
SQL Server 客户端连接默认使用 TCP 端口 1433,但端口号也可以是动态的。如果软件正在访问作为默认实例安装的专用 SQL Server 实例,那么它可能会使用默认端口。