关于本机无法连接SQLEXPRESS的解决办法

http://www.cnblogs.com/yuanyuan/archive/2011/02/12/1951871.html
http://www.youthfly.net/archives/394.html

服务器名称改成:".\SQLEXPRESS",就能解决问题

参考如下:
使用sqlexpress的数据库连接配置,使用附加数据库方式
<add name="applicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFileName=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
Integrated   Security默认值是False,此时需要提供Uid和Pwd,即将以Sql   Server   用户身份登陆数据库;如果设置为True,Yes   或   SSPI,这不能出现Uid和Pwd,将以Windows用户省份登陆数据库。强烈推荐用后一种形式,安全性更高。
User Instance
A value that indicates whether to redirect the connection from the default SQL Server Express instance to a runtime-initiated instance running under the account of the caller.
曾经,要运行 SQL Server 数据库,就必须在实例下创建数据库,不管是直接创建、还是附加、还是还原,总之都得在实例下创建,但这造成一个问题,我们的权限不够高,无法将数据库附加或还原到 SQL Server,我们只是有 .mdf、.ldf 文件。
从 SQL Server 2005 开始,有了新选择
在连接字符串中使用 AttachDbFilename,可直接连接到一个数据库文件。比如是这样的:
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Data.mdf;Integrated Security=True;User Instance=True
这里 User Instance 就是用户实例,为 True,表示使用用户实例。
那什么是用户实例呢?
先看看实例
SQL Server 实例是一个在服务器上运行的 SQL Server 可执行程序。每个实例都有一个名称,内存中的一个 sqlservr.exe 进程、缓冲区内存、它自己的系统数据库副本,以及它自己的一组用户数据库。例如,默认情况下,SQL Server Express 作为一个名为“SQLEXPRESS”的实例安装。通过在连接字符串中指定带有服务器名称的实例名,可以连接到已命名的实例。这就是在连接到本地 SQL Server Express 数据库时通常将“.\SQLEXPRESS”指定为服务器名的原因。点(.)意味着本地服务器,\SQLEXPRESS 指定了 SQLEXPRESS 命名实例。
再看用户实例
用户实例是对实例的扩展。用户实例与普通实例类似,但它是在需要的时候创建,而普通实例是在安装期间创建的。
用户实例必须由父实例创建,所以使用用户实例时,我们也不能省略 Data Source。
谁打开了数据库连接,谁就是这个用户实例的运行帐户,比如 IUSR_Cftea 运行着网站,它打开了带用户实例的数据库连接,那么这个用户实例就是以 IUSR_Cftea 运行的。
用户实例限制
仅允许本地连接。
不能复制用户实例。
分布式查询对远程数据库不起作用。
用户实例仅在 SQL Server 的 Express Edition 内运行。

猜你喜欢

转载自panyongzheng.iteye.com/blog/1585320