关于我们应该模拟什么而不是什么的讨论,在这种情况下并没有什么帮助,因为目前我们需要这样做。
我们也尝试了简单的ping,但甚至连那个也无法连通:
Test-Connection "172.217.18.100" #resolves to www.google.com
Testing connection to computer '172.217.18.100' failed: Error due to lack of resources
所以我们的印象是大多数外部IP/端口等都可能被锁定了?有没有办法打开它?如果有,怎么做?
我无法想象我们是第一个尝试这样做的人?从网站下载东西,进行REST调用等等?总该有办法吧?
更新1:
我们对这个问题 在这里 有更详细的问题,但发现这是一个更通用的问题。
当我们连接到Azure SQL时出现的错误消息是
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)`
但是,命名管道提供程序部分是误导性的。如果尝试连接到不存在的 IP,则在本地也会收到此消息。
我们从 C# NUnit 测试访问 Azure SQL。
更新2: 我们尝试了 @starain-MSFT 的想法,并安装了 Azure SQL 执行查询步骤/任务。安装很好,但似乎缺少一个组件。如下图所示。
"找不到具有以下功能的代理:azureps、sqlps、npm、node.js、msbuild、visualstudio、vstest"
根据已安装应用程序列表(链接),我认为它是 azureps。
解决方案(部分):
好的,所以我们一直走错了路。问题不在防火墙(或任何防火墙上)。问题是我们的 app.config 文件中没有正确的设置。
我们在单元测试内部的 App.config 文件和 Web.config 文件中拥有相同的设置。每个文件都附带了一个 App.Debug.config 和一个 App.Release.config 文件。虽然这对于 Web 应用程序来说很好用,但显然对于我们的单元测试来说并不起作用。
我们仍在寻找一个好的解决方案。我发现 如何在 Visual Studio 中添加转换任务的此解决方案, 但这不是我们正在寻找的,因为我们不需要在本地进行转换,而只需要在 Visual Studio Teams 中进行。
Visual Studio Teams 内的 app.config 转换
所以,我想我们终于搞定了。使用 ConfigTransform,我们现在可以在构建过程中转换我们的 app.config 文件。