1

我在本地连接到 Northwind.mdf,但是当我将应用程序上传到远程服务器时,我收到以下错误:

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

这些是我尝试过的几个选项:

<connectionStrings>
        <add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Northwind.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
    </connectionStrings>

上面的一个在本地工作。

<connectionStrings>
            <add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=D:\ASP\TestSite\App_Data\Northwind.mdf; Integrated Security=True;Connect Timeout=30;User Instance=True;Trusted_Connection=Yes"/>
        </connectionStrings>

在服务器上安装 SQL Server 2005

谢谢,
伊利亚

4

4 回答 4

1
Data Source=.\\SQLEXPRESS;AttachDbFilename=D:\\ASP\TestSite\\App_Data\\Northwind.mdf;Integrated Security=True;User Instance=True

然后阅读如何配置 SQL Server 2005 以允许远程连接

并确保 Northwind.mdf 的位置是正确的!

于 2010-12-21T16:16:47.233 回答
1

这里有几点要检查:

  • 如果您要部署到共享主机环境中,主机可能不会在 Web 服务器上运行 SQL Server。请他们确认并向您提供 .

  • 您使用的连接字符串看起来很可疑。如果 SQL server 已安装在您的服务器上但作为“默认”实例,那么您不需要\SQLEXPRESS连接字符串的部分Data Source。只需使用.or (local)

  • 如果确实安装了 SQL Express 并且使用实例名称进行了安装,SQLEXPRESS则检查站点身份是否具有有效的登录名以及对数据库的正确权限。此标识可以是工作进程帐户(NETWORK SERVICE、、ApplicationPoolIdentity自定义帐户)或站点的 IIS 匿名帐户(如果启用了 ASP.NET 模拟)。

我的最后一点很重要:

  • AttachDbFilename和是特定于 SQL Express的User Instance=True,它支持称为“用户实例”的概念。此功能不适用于专用或共享托管环境。

我的建议是

  • 准确找出可供您使用的 SQL Server版本和版本
  • 找出它的托管位置(本地在您的服务器上,或在另一台机器上)
  • 查看它是配置为“默认”实例还是命名实例
于 2010-12-22T01:10:19.447 回答
1

有几件事要检查:

  1. 数据库文件真的在那个位置吗?
  2. 应用程序池是否对该目录具有读/写权限?
  3. SQL Express 服务是否真的在运行?
于 2010-12-21T15:37:11.263 回答
1

请按照下列步骤操作: 1:使用 Sql server Management studio 将 Northwind.mdf 附加到服务器上的 Sql Server 2005。2:修改 web.config 中的连接字符串,使其指向服务器上的数据库。

如何分离/附加数据库。

于 2010-12-21T15:59:42.957 回答