【问题标题】:IIS: Connecting to .mdf database - web config problemIIS:连接到 .mdf 数据库 - Web 配置问题
【发布时间】:2010-12-21 14:54:17
【问题描述】:

我在本地连接到 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

谢谢,
伊利亚

【问题讨论】:

  • 您的连接字符串表示 Express 版本,但您只提到“SQL Server 2005” - 它是什么?是远程主机上的 SQL Server 2005 Express,还是 SQL Server 2005 的完整版本?

标签: asp.net sql-server iis mdf


【解决方案1】:

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

How to detach / attach db.

【讨论】:

  • 嗨,我也遇到了同样的问题。我已将 Visual Studio 中的 mdf 文件添加到 app_data 文件夹中。我的连接字符串是 Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True。我正在通过 filezilla 上传我的项目。那么有没有其他方法可以解决这个问题
  • @ArjunVachhani 您必须将您的数据库附加到您的托管数据库服务器上。
【解决方案2】:

需要检查的几件事:

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

【讨论】:

    【解决方案3】:
    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 的位置正确!

    【讨论】:

      【解决方案4】:

      这里有几点需要检查:

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

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

      • 1234563此身份可以是工作进程帐户(NETWORK SERVICEApplicationPoolIdentity、自定义帐户)或站点的 IIS 匿名帐户(如果启用了 ASP.NET 模拟)。

      我的最后一点很重要:

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

      我的建议是

      • 确切了解可供您使用的 SQL Server 的版本和版本
      • 找出它的托管位置(本地在您的服务器上,或在另一台机器上)
      • 查看它是配置为“默认”实例还是命名实例

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-14
        • 2018-02-09
        相关资源
        最近更新 更多