我在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>
答案 0 :(得分:0)
IIS服务器需要对本地db文件具有独占访问权限,这是您无法使用SSMS访问数据库的主要原因。
理论上,当IIS在后台运行时,您可以对本地数据库进行只读访问。我经常使用Visual Studio和IIS,我可以在Web服务器运行时访问本地数据库。
我认为SSMS需要写访问才能与本地数据库一起工作。这可能是VS无法读取和SSMS的原因。
答案 1 :(得分:0)
我发现每个同时访问LocalDB的应用程序必须拥有自己的共享实例。在MS网站上有一个关于它的好教程,但问题是如果没有活动,共享实例就会停止,虽然我在微软网站上看到它会自动重启,但它并没有发生在我身上。经过几周的挣扎,我决定使用本网站上其他帖子的建议:当使用IIS部署到网站时,请改用SQLExpress。它现在完美无缺。