3

我正在从 Azure 云服务连接到 SQL Azure 数据库。四分之三的工作角色可以毫无问题地与数据库连接和交互。第四个,由于未知原因,在我第一次与 DbSet 交互时抛出此异常:

System.Data.ProviderIncompatibleException: An error occurred while getting
provider information from the database. This can be caused by Entity Framework
using an incorrect connection string. Check the inner exceptions for details and
ensure that the connection string is correct.
--->    System.Data.ProviderIncompatibleException: The provider did not return a 
ProviderManifestToken string.
---> System.Data.SqlClient.SqlException: 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: Named Pipes
Provider, error: 40 - Could not open a connection to SQL Server)
---> System.ComponentModel.Win32Exception: The system cannot find the file
specified

所有四个角色都使用相同的连接字符串(来自服务配置),使用来自同一程序集的 Entity Framework 5 DbContext。

这是连接字符串:

Server=tcp:aaa.database.windows.net,1433;Database=AppName;User ID=appusername@aaa;Password=999;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;

在开发结构上运行时我没有收到错误。我已尝试重新映像部署。SSMS 连接得很好。

这第四个工人还有什么不同会导致这样的错误?

4

3 回答 3

1

所以我最初的诊断有点不正确。它没有像我想的那样从服务配置中获取连接字符串。它来自 app.config。

这个问题原来与 TFS 的持续部署有关。默认的构建/部署脚本对内容文件没有足够的关注,例如,app.config!它给所有四名工人提供了相同的副本,而不是把他们的包裹分开。这是一个很大的问题!

我没有找到解决方案或解决方法;我不知道如何更改 WWF XAML。我只是再次确定我只是从服务配置中获取设置(在这种情况下,在运行时为 NLog 设置它)。

于 2013-10-01T23:42:58.287 回答
0

过去我见过像你这样的奇怪行为。连接到 sql azure 的 VM 和另一个不能。问题是 Azure 分配的 VM 的 IP。在 Sql Azure 上,您已启用“允许的服务 --> WINDOWS AZURE SERVICES --> YES”。但是某些 ip 地址(我想太新了)未被 Sql Azure 识别为“Azure 服务”。解决方案:等待 IP 更新(几天?)或在 sql azure 上添加一个明确的防火墙规则,以防止您的 IP 不起作用。
但我不确定这是否与您遇到的问题相同。

于 2013-07-12T09:25:20.030 回答
0

如果它与 TFS 构建问题有关,那么当构建多个工作角色时,我遇到了相同的配置文件被覆盖的问题,在我的情况下,它是使用传递给 msbuild.exe 的 /m:1 参数解决的。更多细节可以在这里找到:http: //virtocommerce.blogspot.com/2013/05/building-and-publishing-azure-solution.html

于 2013-12-11T03:47:10.673 回答