Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net SQL网络接口,错误:26-定位为MDF文件指定的服务器/实例时出错_Asp.net_Sql Server_Iis_Deployment_Publish - Fatal编程技术网

Asp.net SQL网络接口,错误:26-定位为MDF文件指定的服务器/实例时出错

Asp.net SQL网络接口,错误:26-定位为MDF文件指定的服务器/实例时出错,asp.net,sql-server,iis,deployment,publish,Asp.net,Sql Server,Iis,Deployment,Publish,我已使用Visual Studio内置功能将数据库文件.mdf添加到我的应用程序中。数据库位于App_数据文件夹中。它运转良好。但当我发布它并上传到服务器时,它给出了这个错误 运行时发生与网络相关或特定于实例的错误 正在建立与SQL Server的连接。找不到服务器,或者 无法访问。验证实例名称是否正确,以及 SQL Server配置为允许远程连接。提供者:SQL 网络接口,错误:26-定位服务器/实例时出错 指定的 我也遇到过类似的情况,但很困惑。我不知道服务器上运行的是哪个版本的SQL Se

我已使用Visual Studio内置功能将数据库文件.mdf添加到我的应用程序中。数据库位于App_数据文件夹中。它运转良好。但当我发布它并上传到服务器时,它给出了这个错误

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

我也遇到过类似的情况,但很困惑。我不知道服务器上运行的是哪个版本的SQL Server。我使用Filezilla上传项目。我的web.config中的连接字符串如下所示:

请描述一步一步的过程是可能的

提前感谢。

整个用户实例和AttachDbFileName=方法都有缺陷-最多!而且,它只受SQL Server Express版的支持——因此,如果您的宿主没有Expres,那么您基本上就完蛋了

在我看来,真正的解决办法是

安装SQL Server Management Studio Express

在SSMS Express中创建数据库,并为其指定一个逻辑名称,例如MyDatabase

使用在服务器上创建时提供的逻辑数据库名称连接到它,并且不要混淆物理数据库文件和用户实例。在这种情况下,您的连接字符串类似于:

Data Source=.\\SQLEXPRESS;Database=MyDatabase;Integrated Security=True
Server=(ip-address-or-name);Database=MyDatabase;User ID=YourUserIdHere;Pwd=YourPassword
其他一切都和以前一样

现在,当您将网站上载到托管网站时,您需要获取必要的SQL脚本,以便在托管网站上创建和填充数据库-您可以通过使用SSMS Express工具中的Tasks>Generate scripts或通过其他方式来完成此操作

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

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

Data Source=.\\SQLEXPRESS;Database=MyDatabase;Integrated Security=True
Server=(ip-address-or-name);Database=MyDatabase;User ID=YourUserIdHere;Pwd=YourPassword
因为宿主提供程序不使用SQLEXPRESS命名实例,但很可能是没有任何名称的默认实例。您需要向提供商询问详细信息-可能需要提供其他实例名称!这完全取决于提供商,我们无法知道-您必须询问并找出答案。

整个用户实例和AttachDbFileName=方法存在缺陷-最多!而且,它只受SQL Server Express版的支持——因此,如果您的宿主没有Expres,那么您基本上就完蛋了

在我看来,真正的解决办法是

安装SQL Server Management Studio Express

在SSMS Express中创建数据库,并为其指定一个逻辑名称,例如MyDatabase

使用在服务器上创建时提供的逻辑数据库名称连接到它,并且不要混淆物理数据库文件和用户实例。在这种情况下,您的连接字符串类似于:

Data Source=.\\SQLEXPRESS;Database=MyDatabase;Integrated Security=True
Server=(ip-address-or-name);Database=MyDatabase;User ID=YourUserIdHere;Pwd=YourPassword
其他一切都和以前一样

现在,当您将网站上载到托管网站时,您需要获取必要的SQL脚本,以便在托管网站上创建和填充数据库-您可以通过使用SSMS Express工具中的Tasks>Generate scripts或通过其他方式来完成此操作

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

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

Data Source=.\\SQLEXPRESS;Database=MyDatabase;Integrated Security=True
Server=(ip-address-or-name);Database=MyDatabase;User ID=YourUserIdHere;Pwd=YourPassword

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

我的解决方案是确保在解决方案中为启动设置了正确的项目。右键单击project并设置为Startup project

我的修复程序是确保在解决方案中为启动设置了正确的项目。右键单击project并设置为Startup project

您需要了解托管提供商使用的SQL Server版本。AttachDbFileName=功能仅在SQL Server Express中可用。如果可以对远程托管数据库运行SQL语句,则可以使用以下命令查找正在使用的版本:选择服务器属性“我查询的版本”。它是标准版。我的连接字符串是否正常?如果它是标准版,则否,您的连接字符串不正常,因为标准版不支持AttachDbFileName=方法。您需要了解托管提供商使用的SQL Server版本。AttachDbFileName=功能是
仅在SQL Server Express中可用。如果可以对远程托管数据库运行SQL语句,则可以使用以下方法查找正在使用的版本:选择SERVERPROPERTY'edition'i queried。这是标准版。我的连接字符串可以吗?如果是标准版,那么不可以,您的连接字符串不可以,因为标准不支持AttachDbFileName=方法。