我有一个ASP.NET MVC Web应用程序部署到Windows Server 2012机器上的IIS。 当应用程序第一次启动时,将根据需要创build数据库和表。 这一切工作正常,现在我想通过SQL Server Management Studio对数据库进行一些pipe理。 但是,当我打开该工具,我只看到系统数据库。 为了查看由Web应用程序创build的数据库,我需要做什么?
该应用程序在Web.config中使用以下连接string:
<add name="DefaultConnection" connectionString="Data Source=.\SqlExpress; Initial Catalog=Foo.Dashboard;Integrated Security=SSPI;User Instance=true" providerName="System.Data.SqlClient" />
在IIS中,应用程序池设置为以LocalService身份运行,并且“ Load User Profile设置为True 。 在Sql Server Express上,我们为Local Service帐户添加了一个login名并为其赋予了dbcreatorangular色。 当应用程序启动时,它可以创build数据库和表,并且一切似乎都正常。
然后使用远程桌面连接到服务器,然后打开SQL Server Management Studio。 要连接到数据库,input.\SQLEXPRESS作为服务器名称,并使用Windows Authenticationvalidation进行Windows Authentication 。 然后我连接并只能看到系统数据库 。 我已经将所有可能的数据库angular色添加到我的login中,并且我看到在“有效”选项卡中具有“ VIEW ANY DATABASE权限。
User Instance=true
这是因为它作为用户实例运行。 您可以使用这里的详细信息连接到它
或者,如果从连接string中删除User Instance=true ,那么如果首先使用EF代码,则应该在SQL实例上创build新的DB。 请记住,这些表将是空的,您需要从您的用户实例移动任何数据,假设有任何数据。