1

I have added a database file (.mdf) to my application using Visual Studio built-in functionality. Database is in the App_Data folder. It is running fine. But when I publish it and upload it to server it gives this error.

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

I visited similar situation but confused. I don't know which version and edition of SQL Server is running at server. I upload project using Filezilla. My connection string is as follows in my web.config:

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

Please describe process step by step is possible.

Thanks in advance.

4

2 回答 2

3

整个User Instance 和 AttachDbFileName=方法是有缺陷的 - 充其量!此外,它仅受 SQL Server 的Express版本支持 - 因此,如果您的主机有任何以外的东西Expres,那么您基本上就完蛋了。

我认为真正的解决方案是

  1. 安装 SQL Server Management Studio Express

  2. 在SSMS Express中创建您的数据库,给它一个逻辑名称(例如MyDatabase

  3. 使用它的逻辑数据库名称(在服务器上创建它时给出)连接到它——不要乱用物理数据库文件和用户实例。在这种情况下,您的连接字符串将类似于:

    Data Source=.\\SQLEXPRESS;Database=MyDatabase;Integrated Security=True
    

    其他一切都和以前完全一样...

现在,当您将您的网站上传到托管站点时,您需要获取必要的 SQL 脚本来在托管站点上创建和填充您的数据库 - 您可以通过使用Tasks > Generate ScriptsSSMS Express 工具或其他一些工具来执行此操作方法。

然后,在托管站点上,您需要执行这些 SQL 脚本来创建和填充您的数据库(稍后:执行更改脚本以使数据库保持最新)。

您的连接字符串也很可能会更改为:

Server=(ip-address-or-name);Database=MyDatabase;User ID=YourUserIdHere;Pwd=YourPassword

因为托管服务提供商不使用SQLEXPRESS命名实例(但很可能是没有任何名称的默认实例)。您需要向您的提供商询问详细信息 - 您可能必须提供其他实例名称!这完全取决于提供者,我们无法知道 - 您必须询问并找出答案。

于 2013-09-03T11:09:56.523 回答
1

对我来说,解决方法是确保我在解决方案中为启动设置了正确的项目。右键单击项目和“设置为启动项目”

于 2015-03-20T19:12:24.590 回答