【发布时间】:2018-05-22 12:44:07
【问题描述】:
好的......我在这里扯头发(我没有太多开始)..它是“它在我的机器上工作”的那些开发者批准印章之一
基本上,我有一个 C# 控制台应用程序,它需要将数据上传到托管在 Azure 中的 SQL 数据库。我的 Dev 数据库保存在 Visual Studio 订阅(MSDN 中的免费订阅)中,Prod 数据库保存在我们的企业 Azure 订阅中(我必须依靠我们的 Azure 管理员团队来配置)。
在我的 PC 上,在 Visual Studio(或 CMD 行)下,我可以连接到两个实例,但是,在我的 PROD 服务器上,我可以连接到 DEV 数据库,但不能连接到 PROD DB...使用完全相同的测试应用程序(见下文)。
现在,我在公司防火墙/代理后面,但 IP 地址已添加到两个数据库的防火墙规则中......显然配置正确,因为它可以通过 Dev PC 连接。
为了尝试简化测试,我将所有内容缩减为一个简单的测试 C# 测试应用程序,并使用适当的连接字符串运行它...
using System;
using System.Data.SqlClient;
namespace AzureConnectTest
{
class AzureConnectTest
{
static void Main(string[] args)
{
string ConnectionString = @"data source=******.database.windows.net; ";
ConnectionString += @"initial catalog=****; ";
ConnectionString += @"persist security info=False; ";
ConnectionString += @"MultipleActiveResultSets=True; ";
ConnectionString += @"user id=""*****""; ";
ConnectionString += @"password=""*****""; ";
Console.WriteLine("Attempting to connect");
Console.WriteLine(ConnectionString);
try
{
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
conn.Open();
Console.WriteLine(" - Success");
}
}
catch (Exception ex)
{
Console.WriteLine(" - Failed");
Console.WriteLine(ex.Message);
}
}
}
}
现在...这是结果...
所以......我在这里错过了什么......
为了记录,我已经搜索了类似的问题,但他们要么没有得到回答,要么提供的回复仍然没有解决问题......而且你不能“碰撞”问题说“我有这个问题”
【问题讨论】:
-
嗨。如果您无权访问 Azure,那么找出配置的内容是一个挑战。例如,您可能需要 Encrypt=True;并且可能 TrustServerCertificate=False。为了更快地找到它以及如何连接,我建议您使用 sql management studio 并尝试连接到那里的 azure 数据库。
-
@Mono 尝试了这两个参数(所有组合),但仍然无法从 prod 服务器连接 - 我们的 Azure 团队不是开发人员,并且一直说“你尝试过 SSMS”,但它没有安装在 prod 上服务器,我不愿意安装它“只是为了测试连接”
-
第二行错误表示连接字符串中有无效关键字
authentication。第三行错误说sql server不可连接。
标签: c# azure azure-sql-database