【问题标题】:Cannot connect to named shared LocalDB instance无法连接到命名的共享 LocalDB 实例
【发布时间】:2014-05-07 14:34:17
【问题描述】:

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

我创建 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 配置管理器中 - 启用所有协议。

我需要实现的——根据this与IIS APPPOOL\ASP.NET v4.0账号共享LocalDB实例。

【问题讨论】:

    标签: iis localdb


    【解决方案1】:

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

    【讨论】:

    • 好的,就是这样。我很惭愧:) 谢谢!我现在可以使用 sql mgmt studio 连接实例。我转到下一步,即与 IIS APPPOOL\ASP.NET v4.0 帐户共享实例。我无法从我的 Web 应用程序连接实例(该应用程序在 ASP.NET v4.0 池下运行,该池在 ApplicationPoolIdentity 下运行。当我尝试使用名称连接时,我得到不同的错误,然后当我尝试管道时。
    • 使用名称:与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:50 - 发生本地数据库运行时错误。指定的 LocalDB 实例不存在。)
    • 使用管道:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)
    • 池设置:
    • 可能您在 LocalDB 实例上缺少 ASP.NET 池用户的登录信息。看看这是否有帮助:blogs.msdn.com/b/sqlexpress/archive/2011/12/09/…
    【解决方案2】:

    您需要启用 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-23
      • 1970-01-01
      • 2015-06-03
      • 1970-01-01
      • 2016-08-10
      • 1970-01-01
      相关资源
      最近更新 更多