[英]I can't connect to a SQL Server from a UWA app, but I can with a WinForms app
我構建了一個小型通用 Windows 應用程序(C#),但我無法連接到我的 SQL 服務器。 異常內容如下:
與 SQL 服務器建立連接時發生與網絡相關或特定於實例的錯誤。 服務器未找到或無法訪問。 驗證實例名稱是否正確,並且 SQL 服務器配置為允許遠程連接。 (提供者:TCP 提供者,錯誤:40 - 無法打開與 SQL 服務器的連接
一小段代碼很簡單:
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;
}
連接字符串是:
Persist Security Info=False;Application Name=XBAR_Digital_Form;Connect Timeout=2;server=wcsql.wc.com;database=ppd_general_use;User ID=*******;Password=********;
我還嘗試了各種其他連接字符串選項來連接到 SQL 服務器版本 2012。
連接超時后,在“await conn.OpenAsync()”處引發異常。 我已經通過調試確認 GetConnectionString() 方法正確地傳遞了字符串。
奇怪的是,我可以用完全相同的連接字符串制作的標准 Windows Form 應用程序連接得很好。 我使用相同的通用方法在兩個應用程序上使用 System.Data.Sqlclient 進行連接。 我可以從任何其他應用程序(如 Excel 或 Microsoft SQL Server Management Studio)連接到服務器
我發現了問題。
我使用 Windows Template Studio 來創建項目。 我查看了我的 Package.appxmanifest 並轉到功能,發現“私有網絡(客戶端和服務器)”未啟用。 啟用並重建后,連接完美無缺。
無法訪問網絡上的服務器,您必須允許遠程連接添加 TCP 和 UDP
對出站做同樣的事情
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.