【问题标题】:I can't connect to a SQL Server from a UWA app, but I can with a WinForms app我无法从 UWA 应用程序连接到 SQL Server,但我可以使用 WinForms 应用程序
【发布时间】:2021-04-22 23:37:01
【问题描述】:

我构建了一个小型通用 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)连接到服务器

【问题讨论】:

  • 能否包含连接字符串值?如果适用,请输入密码和部分/全部用户名。

标签: c# sql-server


【解决方案1】:

我发现了问题。

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

【讨论】:

    【解决方案2】:

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

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

    对出站做同样的事情

    【讨论】:

    • 我解决了我的问题,但出于好奇,这不是意味着两个应用都无法连接吗?
    • 我按照我理解你的问题的方式回答了
    • 是的,如果您尝试连接到网络上的服务器,如果应用程序在同一台主机上,则没有问题
    猜你喜欢
    • 1970-01-01
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多