0

试图找出我们应用程序中的 SQL 连接错误 26。

我们有两个密切相关的应用程序 Foo 和 FooAddIn。Foo 是一个在 VS2010 中构建的 Winforms 应用程序,运行良好,可以很好地连接到我们的 SQLExpress 后端。

FooAddIn 是一个 Outlook 插件,它引用 Foo.exe 并连接到同一个 SQL Express 实例。或者更确切地说,它没有连接,而是报告:

A network-related or instance-specific error occurred while establishing a connection
to SQL Server. The server was not found or was not accessible. Verify that the 
instance name is correct and that SQL Server is configured to allow remote 
connections. (provider: SQL Network Interfaces, error: 26 - Error Locating 
Server/Instance Specified)

现在,两个应用程序共享相同的连接字符串,我们已经验证它们确实共享相同的连接字符串。

在这个阶段,我们只是在同一台开发人员机器上进行测试,所以应用程序在同一台机器上,通过同一个 VS2010 IDE 运行。

所以很多关于这个错误的在线建议并不适用,因为 Foo 连接到 SQL Express 的事实告诉我们数据库在那里并且可用并且可以访问。

还有什么要检查的?一件事是 Foo 和 FooAddIn 运行不同的运行时版本System.Data(v2.0.50727 和 v4.0.30319)。这可能是一个因素吗?

4

1 回答 1

2

已解决:毕竟这只是一个防火墙问题


一位同事指出,我们的FooAddIn Outlook Addin 将在与Foo Winforms 应用程序不同的安全上下文中运行。

我们检查了防火墙,果然列出了一大堆来自 Outlook.exe 的被阻止连接。

因此,即使它们在同一台机器上,并且它们的连接字符串相同并且它们都是 VS2010 应用程序,防火墙也将它们视为完全不同的东西。

于 2012-07-03T15:12:25.577 回答