![](/img/trans.png)
[英]How to connect to SQL server database from a Windows 10 UWP app
[英]Cannot connect to SQL Server Express database from an UWP app
我有一個需要連接到 SQL Server Express 數據庫的 UWP 應用程序。 在我的開發盒上,我沒有任何問題。
在客戶端 PC 上,我安裝了 SQL Server Express,創建了數據庫,設置了用戶和登錄名。
當我運行應用程序並嘗試連接到數據庫時,出現錯誤:
與 SQL 服務器建立連接時發生與網絡相關或特定於實例的錯誤。
服務器未找到或無法訪問。 驗證實例名稱是否正確,並且 SQL 服務器配置為允許遠程連接。
(提供者:TCP 提供者,錯誤:40 - 無法打開與 SQL 服務器的連接)
我用來連接的代碼是:
...
using (SqlConnection connection = new SqlConnection(ConnectionStringTextBox.Text.Trim()))
{
try
{
connection.Open();
MessageBox.Show("Connected successfully!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
...
在客戶端計算機上的桌面應用程序上使用相同的代碼,連接成功。
我已將 UWP 應用程序設置為使用 Windows 10 的 1809 版。
客戶端和我的開發盒都是 2004 版。
Package.appxmanifest
文件檢查了以下功能:
Windows 防火牆打開了正確的端口。 在 SSMS 中,我啟用了允許遠程連接,啟用了 TCP。
我不知道我做錯了什么或出了什么問題。 同樣的 UWP 應用程序在我的開發盒上運行良好。
任何建議表示贊賞。
如果您嘗試連接到同一台機器上的 SQL 服務器實例,它將無法工作,因為UWP 應用程序已被沙盒化,無法通過 TCP/UDP 連接到 localhost - 而與遠程機器的連接將成功。 我認為這很愚蠢,但這是設計使然。
作為一種解決方法,您可以將 SQL 服務器配置為使用共享 Memory 或命名管道,這些方法應該可以工作。
我忘了現在有一個功能可以添加到您的 AppX 清單中以啟用本地環回連接(僅適用於 TCP, 它不適用於 UDP )。
您可以嘗試此示例,了解如何在 uwp 應用程序中連接到 sql 服務器,並嘗試在您的客戶端 PC 上執行相同的步驟,希望它有效: httpsen///umicrosoft.com//數據訪問/sql-server-databases#first-set-up-your-solution
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.