首页 > 解决方案 > 如何使用 Visual Studio 中的内置登录控件将现有 SQL Server 连接到 ASP.NET 表单应用程序(网站)

问题描述

问题:我正在尝试使用 Visual Studio 2019 中的内置(拖放)表单控件创建登录表单。这是我第一次使用这些控件,而不是使用 php 并为了提高效率而切换。因此,如果可能的话,我坚持使用内置方法进行登录控件的想法。

我的项目是一个 ASP.NET Web 应用程序 (.NET Framework)。我有一个单独的远程 Microsoft SQL Server 正在运行并通过服务器资源管理器以及 web.config 文件中的连接字符串连接,如下所示:

<add name="NAME" 
     connectionString ="Data Source=COMPUTERNAME;Initial Catalog=CATNAME;User ID=tj;Password=Password" 
     providerName="System.Data.SqlClient"/>

但是,这无助于主要问题:如何使我创建的登录表单与远程 SQL Server 通信?

在阅读堆栈跟踪并进行一些研究后,我可以得出结论,由于我的项目不在“我的文档/Visual Studio 2019/...”中,我得到了 [堆栈跟踪结果] 下面的错误。目录和 Visual Studio 本身正在尝试访问它没有 READ/WRITE 权限的实际目录(即使我自己尝试手动添加这些权限),但无论如何...... Visual Studio 通常会添加App_Data目录以及其中的内置数据库(不理想),可以按原样与内置登录控件一起使用。相反,VS 试图访问一个它无法访问的地方以及一个不存在的数据库。我已经用尽了我所知道的选项,不知道下一步该尝试什么。我知道那里有很多涵盖一般主题的教程,但它们对我的潜在问题没有帮助,也对我或我的情况没有任何帮助,因为它们没有深入探讨可能与项目或独特情况有关的所有问题比如我的。

此外,SQL Server 也很好。它已经过多种不同的测试,可从 Visual Studio 访问。

资料来源:

(抱歉,在我决定发布之前做了一些研究,所以我忘记了我的大部分来源)

初始教程:

故障排除:

堆栈跟踪的结果:

[SqlException (0x80131904):建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定实例)]

System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity 身份,SqlConnectionString connectionOptions,SqlCredential 凭据,对象 providerInfo,字符串 newPassword,SecureString newSecurePassword,布尔重定向用户实例,SqlConnectionString userConnectionOptions,SessionData reconnectSessionData,DbConnectionPool 池,字符串 accessToken,布尔 applyTransientFaultHandling,SqlAuthenticationProviderManager sqlAuthProviderManager) +947
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions 选项,DbConnectionPoolKey poolKey,对象 poolGroupProviderInfo,DbConnectionPool 池,DbConnection owningConnection,DbConnectionOptions userOptions)+6024351
System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions) +38
System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource 1 次重试, DbConnectionOptions userOptions) +156 System.Data.ProviderBase.DbConnectionClosed .TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource 1 次重试) +92 System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 次重试) +219 System.Data.SqlClient.SqlConnection.Open() +101 System.Web.Management .SqlServices.GetSqlConnection(String server, String user, String password, Boolean trust, String connectionString) +781 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +531
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource

1 retry, DbConnectionOptions userOptions) +22 System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource

[HttpException (0x80004005): 无法连接到 SQL Server 数据库。] System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trust, String connectionString) +131 System.Web.Management.SqlServices。 SetupApplicationServices(字符串服务器,字符串用户,字符串密码,布尔信任,字符串连接字符串,字符串数据库,字符串 dbFileName,SqlFeatures 功能,布尔安装)+92 System.Web.Management.SqlServices.Install(字符串数据库,字符串 dbFileName,字符串连接字符串) +30 System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile(String fullFileName, String dataDir, String connectionString) +410`

标签: c#asp.netsql-servervisual-studio-2019

解决方案


正如您的错误所述,您的应用程序和 sql server 之间的连接不成功,并进一步查看您的连接字符串,如下所述

<add name="AnyName" connectionString ="Data Source="ComputerName";Initial Catalog=DBNAME;User ID=tj;Password=Password" providerName="System.Data.SqlClient"/>

在您的"Data Source"部分 SQL Instance is missing like

“数据源=计算机名/SqlInstance”


推荐阅读