编辑: 我原来遗漏的一个重要细节(因为我不知道它很重要)是我们在完整的IIS中运行这些网站,而不是从IIS运行表达
我们正在尝试为Kentico CMS设置本地开发环境,将我们的本地计算机添加到我们当前的Dev同步链中 - >分期 - > Prod(所以我们将与当地人结束 - > Dev - > Staging - > Prod)。
我们将我们的Dev DB复制到我们的本地机器上,然后复制到SQL Server的(localdb)\ v11.0实例上,但我们在除了我的以外的所有计算机上都遇到了问题。
这是我们得到的错误:
应用程序无法连接到数据库,请检查 web.config文件中的连接字符串和SQL Server可用性。
原始错误:
发生与网络相关或特定于实例的错误 建立与SQL Server的连接。找不到服务器或 无法访问。验证实例名称是否正确 SQL Server配置为允许远程连接。 (提供者:SQL 网络接口,错误:50 - 发生本地数据库运行时错误。 指定的LocalDB实例不存在。 )
我已经尝试了其他SO答案和其他网站的大量建议,以弄清楚我们为什么会收到此错误(以及为什么它在我的机器上没有发生),但没有运气。我们可以在SSMS中连接到(localdb)\ v11.0但我们无法通过VS连接到它(相同的错误)。此外,当我们打开Sql Server配置管理器时,我们没有看到SQL Server服务的任何列表。有什么想法吗?
答案 0 :(得分:6)
在数据库中为该帐户创建一个登录名。
USE [master];
CREATE LOGIN [NT AUTHORITY\NETWORK SERVICE] FROM WINDOWS;
EXEC sp_addsrvrolemember N'NT AUTHORITY\NETWORK SERVICE', SYSADMIN;
通过运行与所有用户共享您的实例
SqlLocalDB share Kentico KenticoShared
<add name="CMSConnectionString" connectionString="Data Source=(localdb)\.\KenticoShared;Initial Catalog=KenticoDB;Integrated Security=True;Connect Timeout=60" />
<add key="CMSConnectionString" value="Persist Security Info=False;Integrated Security=SSPI;database=KenticoDB;server=np:\\.\pipe\LOCALDB#D2BA6590\tsql\query;Current Language=English;Connection Timeout=120;" />
注意:
var ns = new SecurityIdentifier(WellKnownSidType.NetworkServiceSid, null).Translate(typeof(NTAccount)).ToString()
SqlLocalDB info KenticoShared
SqlLocalDB start KenticoShared
答案 1 :(得分:0)
看起来有点模糊,但你看过http://support.microsoft.com/kb/941823,&#34; SQL Server配置管理器中没有列出部分或全部SQL Server 2005服务......&#34;?
即使您可以使用Management Studio进行连接,通常还有两件事会阻碍从应用程序连接到SQL Server。首先,您应确保在实例http://msdn.microsoft.com/en-us/library/bb909712(v=vs.90).aspx上启用了TCP。其次,由于您要连接到一个命名实例,我假设它不是标准端口上运行的默认实例,因此您需要确保SQL Server Browser服务正在运行,{{3} }。这是将应用程序重定向到非标准端口而无需直接指定端口的原因。 Management Studio可以通过它们的原因是它可以通过命名管道连接并完全跳过TCP。
答案 2 :(得分:0)
看到这篇文章,因为这解决了我的问题: 使用LocalDB和完整IIS的这两篇帖子应该会为您提供更多信息。特别是第二部分看似相关,但第一部分也包含一些背景。