我花了好几个小时没有成功。任何帮助appriciated:
我创建了LocalDB实例
sqllocaldb create test
我启动那个实例
sqllocaldb start test
我与拥有原始实例的同一用户帐户共享该实例
sqllocaldb share "domain\user" test testShared
两个实例都处于“运行”状态。
我启动MS SQL Management studio并尝试连接到实例。结果:
我可以使用命名管道连接到两个实例 - 好的。
我可以连接到(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配置管理器中 - 启用所有协议。
我需要实现的目标 - 根据this与IIS APPPOOL \ ASP.NET v4.0帐户共享LocalDB实例。
答案 0 :(得分:12)
根据您描述的确切步骤,您需要做的就是重新启动实例。分享后需要它,以便它使用共享过程分配给它的众所周知的名称来监听公共管道。
答案 1 :(得分:3)
您需要启用setProfileEnvironment。这需要编辑 applicationHost.config文件,通常位于 C:\ WINDOWS \ SYSTEM32 \ INETSRV \ config中。按照KB的说明操作 2547655我们应该为Application Pool ASP.NET v4.0启用两个标志, 像这样:
<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>