我无法从 UWA 应用程序连接到 SQL Server,但我可以使用 WinForms 应用程序

时间:2021-04-22 15:00:07

标签: c# sql-server

我构建了一个小型通用 Windows 应用程序 (C#),但无法连接到我的 SQL 服务器。异常内容如下:

<块引用>

发生与网络相关或特定于实例的错误 建立与 SQL Server 的连接。未找到服务器或 无法访问。验证实例名称是否正确并且 SQL Server 配置为允许远程连接。 (提供方:TCP 提供程序,错误:40 - 无法打开与 SQL Server 的连接

一小段代码很简单:

try
{
    using (SqlConnection conn = new SqlConnection(GetConnectionString()))
    {
        await conn.OpenAsync();

        if (conn.State == System.Data.ConnectionState.Open)
        {
            using (var cmd = conn.CreateCommand())
            {
                cmd.CommandText = getAllRunSheetsQuery;

                using (var reader = await cmd.ExecuteReaderAsync())
                {
                    while (await reader.ReadAsync())
                    {
                        var runNumber = reader.GetInt32(0);
                    }
                }
            }
        }
    }
}
catch (Exception eSql)
{
    System.Diagnostics.Debug.WriteLine($"Exception: {eSql.Message} {eSql.InnerException?.Message}");
    throw;
}

连接字符串为:

<块引用>

持久安全信息=假;应用程序 名称=XBAR_Digital_Form;连接 超时=2;服务器=wcsql.wc.com;数据库=ppd_general_use;用户 ID=*******;密码=********;

我还尝试了各种其他连接字符串选项来连接到 SQL Server 2012 版。

连接超时后,在“await conn.OpenAsync()”处抛出异常。我已经通过调试确认 GetConnectionString() 方法正确地传递了字符串。

奇怪的是,我可以使用完全相同的连接字符串与标准 Windows 窗体应用程序连接。我使用相同的通用方法在两个应用程序上使用 System.Data.Sqlclient 进行连接。我可以从任何其他应用程序(如 Excel 或 Microsoft SQL Server Management Studio)连接到服务器

2 个答案:

答案 0 :(得分:2)

我发现了问题。

我使用 Windows Template Studio 来创建项目。我查看了我的 Package.appxmanifest 并转到 Capabilities,发现“私有网络(客户端和服务器)”未启用。启用并重建后,连接工作正常。

答案 1 :(得分:0)


无法访问网络上的服务器,您必须允许远程连接 添加 TCP 和 UDP

  • 打开文件资源管理器发布此路径“控制面板\所有控制面板项目\Windows Defender 防火墙”
  • 在左侧选择高级设置
  • 添加新的入站规则 TCP 和端口 1433
  • 添加新的入站规则 UDP 和端口 1434

出站也一样

相关问题