IIS运行时无法使用SSMS访问LocalDB

时间:2014-07-24 02:34:38

标签: sql-server

我在IIS 7.5上运行了一个访问LocalDb的网站应用程序,它们都安装在同一台服务器上。

使用SSMS,我可以在对象资源管理器中看到app db文件夹,但是当我尝试展开它时,我收到一条错误消息,说明数据库无法访问。如果我在IIS中停止该网站,那么我可以访问它。

在客户端访问Web应用程序时,有没有办法在SSMS中同时处理数据库?

我使用Windows身份验证以管理员身份登录SSMS。 Web应用程序使用ApplicationPoolIdentity以“IIS AppPool \ AutoParkDemo”登录。

      <connectionStrings>
   <clear />
   <add name="AutoPark" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=AutoParkDemo;AttachDbFilename=C:\AutoPark\Demo\Data\AutoParkDemo.mdf;Integrated Security=true" providerName="System.Data.SqlClient" />
  </connectionStrings>

2 个答案:

答案 0 :(得分:0)

IIS服务器需要对本地db文件具有独占访问权限,这是您无法使用SSMS访问数据库的主要原因。

理论上,当IIS在后台运行时,您可以对本地数据库进行只读访问。我经常使用Visual Studio和IIS,我可以在Web服务器运行时访问本地数据库。

我认为SSMS需要写访问才能与本地数据库一起工作。这可能是VS无法读取和SSMS的原因。

答案 1 :(得分:0)

我发现每个同时访问LocalDB的应用程序必须拥有自己的共享实例。在MS网站上有一个关于它的好教程,但问题是如果没有活动,共享实例就会停止,虽然我在微软网站上看到它会自动重启,但它并没有发生在我身上。经过几周的挣扎,我决定使用本网站上其他帖子的建议:当使用IIS部署到网站时,请改用SQLExpress。它现在完美无缺。