IIS:连接到.mdf数据库 - Web配置问题

时间:2010-12-21 14:54:17

标签: asp.net sql-server iis mdf

本地我连接到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 个答案:

答案 0 :(得分:1)

要检查几件事:

  1. 数据库文件是否真的在该位置?
  2. 应用程序池是否具有该目录的读/写权限?
  3. SQL Express服务是否实际运行?

答案 1 :(得分:1)

请按以下步骤操作: 1:使用Sql server Management studio将Northwind.mdf附加到服务器上的Sql Server 2005。 2:修改web.config中的connectionstring,使其指向服务器上的db。

How to detach / attach db.

答案 2 :(得分:1)

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

然后阅读How to configure SQL Server 2005 to allow remote connections

确保Northwind.mdf的位置正确!

答案 3 :(得分:1)

以下几点要检查:

  • 如果您要部署到共享托管环境中,则主机可能无法在Web服务器上运行SQL Server。请他们确认并为您提供。

  • 您使用的连接字符串看起来很可疑。如果已在服务器上安装SQL Server但作为“默认”实例,则不需要连接字符串\SQLEXPRESS的{​​{1}}部分。只需使用Data Source.

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

我的最后一点很重要:

  • ApplicationPoolIdentityAttachDbFilename特定于SQL Express,支持称为“User Instances”的概念。此功能适用于专用或共享托管环境。

我的建议是

  • 确切了解SQL Server的哪些版本和 edition 可供您使用
  • 找出托管的位置(本地服务器或其他计算机上)
  • 查明它是否配置为“默认”实例或命名实例