2

我花了几个小时没有成功。任何帮助:

我创建 LocalDB 实例

sqllocaldb create test

我启动那个实例

sqllocaldb start test

我与拥有原始实例的同一用户帐户共享该实例

sqllocaldb share "domain\user" test testShared

两个实例都处于“运行”状态。

我启动 MS SQL 管理工作室并尝试连接到实例。结果:

我可以使用命名管道连接到这两个实例 - 好的。

我能够连接到 (localdb)\test - 好的。

我无法连接到 (localdb)\.\testShared - 不行。

错误信息:

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: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 2)

有任何想法吗?我在 4 台不同的计算机上尝试过。它在其中两个上正常工作。3台计算机连接到域(因此它可能与域环境无关)。

在 SQL 配置管理器中 - 启用所有协议。

我需要实现的 - 根据与 IIS APPPOOL\ASP.NET v4.0 帐户共享 LocalDB 实例。

4

2 回答 2

13

根据您所描述的确切步骤,您需要做的就是重新启动您的实例。共享后需要它,以便它使用共享过程分配给它的众所周知的名称侦听公共管道。

于 2013-04-21T20:18:33.167 回答
3

您需要启用 setProfileEnvironment。这需要编辑 applicationHost.config 文件,该文件通常位于 C:\Windows\System32\inetsrv\config。按照 KB 2547655 中的说明,我们应该为应用程序池 ASP.NET v4.0 启用这两个标志,如下所示:

http://blogs.msdn.com/b/sqlexpress/archive/2011/12/09/using-localdb-with-full-iis-part-1-user-profile.aspx

    <applicationPools>
<add name="DefaultAppPool">
        <processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="true" />
 </add>
        <add name="ASP.NET v4.0" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated">
        <processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="true" />
        </add>
于 2014-05-07T06:34:17.517 回答