【问题标题】:Connection string is not valid or Error Locating Server/Instance连接字符串无效或错误定位服务器/实例
【发布时间】:2014-03-16 19:41:22
【问题描述】:

我重新安装了我的电脑,现在我的 SQL 连接字符串或 SQL Server 2012 Enterprise 出现问题
我得到的错误:

"... (provider: SQL Network Interfaces, error: 25 - Connection string is not valid)"  or 

"... (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)"

在 SQL Server Management Studio 中的服务器实例如下所示:

TOM-PC (SQL Server 11.0.3128 - Tom-PC\Tom)

以及 ASP.NET XML 配置中的 My SQL 连接字符串。文件:

<add name="ApplicationServices" connectionString="Data Source=.\TOM-PC;Database=D:\Programming\InvoiceManager\invocemanagerSQL.mdf;" providerName="System.Data.SqlClient" />

尝试了所有方法,在防火墙中添加了端口 1434 或 1433 都测试了,均无效,"SQL Server Browser" 服务正在运行,TCP/IP 已启用,允许远程连接到此服务器,甚至尝试了 4 种不同的连接字符串,但没有任何效果。 在它像魅力一样发挥作用之前,虽然不完全但有效。为什么不完全?因为我无法在本地机器上同时使用"VS2010""SQL Management studio" 两个工作室,如果我需要手动更改数据库中的某些内容,我需要停止或重新启动 SQL Server 进程和服务,然后我进入数据库,并读取表。现在,没有任何工作! 我做错了什么或做错了什么?问题似乎出在哪里?为什么 SQL 服务器和它的连接字符串总是有问题?

【问题讨论】:

    标签: c# mysql asp.net sql sql-server


    【解决方案1】:

    您在 Management Studio 中看到的内容如下:

    Instance Name (SQL Server version - Domain\LoggedInUser)
    

    您使用集成身份验证(即您的 Windows 登录帐户)登录,但未在连接字符串中指定它。这将尝试将当前登录的用户用于 ASP.Net 应用程序,该应用程序几乎肯定不会作为您的 Windows 帐户运行。它可以是本地或网络服务帐户之一,也可以是内置的 ASP.Net 用户。

    如果这实际上是您想要的,而不是连接到服务器上的实际数据库,那么您还使用了错误的变量名来附加数据库文件。

    我建议您在您的实例上启用 SQL Server 身份验证,创建一个新用户并根据需要为其授予数据库权限。

    然后您将使用以下格式登录:

    Server=myServerAddress; Database=myDataBase; User Id=myUsername; Password=myPassword;
    

    其中myServerAddress 将是localhostTOM-PCDatabase 是在 Management Studio 中显示的数据库名称; User Id 是您刚刚创建的用户的用户名,Password 是您在创建期间为其设置的密码。

    如果您确实想附加一个数据库文件,那么您的连接字符串会更改为使用这种格式:

    Server=myServerAddress; AttachDbFilename=C:\Path\To\Database\File.mdf; Database=myDataBase; Trusted_Connection=Yes;
    

    通常,您可以从以下地址获取所需的大多数连接字符串变体:http://www.connectionstrings.com/sql-server/

    【讨论】:

    • 我太笨了,它适用于新用户!谢谢!但是没有创建新用户,为什么我无法连接?
    • 就像我说的,IIS 工作进程 (w3wp) 在与您的域用户帐户不同的帐户下运行。它通常在默认设置下作为网络服务帐户运行,并且该帐户在 SQL Server 中没有权限。您可以查找应用程序池的身份(服务帐户)并在 SQL Server 中授予该权限,但这不是一个好的做法,应使用专用的 Windows 帐户或 SQL Server 帐户。
    猜你喜欢
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 2019-01-08
    相关资源
    最近更新 更多