答案是这里有两个不同的LocalDB实例。与作为Windows服务运行的SQL Server Express实例不同,LocalDB实例作为用户进程运行。当不同的Windows用户连接到LocalDB时,他们最终将为每个用户启动不同的LocalDB进程。当我们从Visual Studio连接到(localdb)v11.0时,会为我们启动一个localdb实例,并作为我们的Windows帐户运行。但是,当作为ApplicationPoolIdentity在IIS中运行的Web应用程序连接到LocalDB时,会为它启动另一个LocalDB实例,并作为ApplicationPoolIdentity运行!实际上,即使Visual Studio和Web应用程序都使用相同的LocalDB连接字符串,它们还是连接到不同的LocalDB实例。显然,在我们的LocalDB实例上从Visual Studio创建的数据库在Web应用程序的LocalDB实例中不可用。
简单的修复方法是使用SQL Server Express而不是LocalDB
更多细节-
https://blogs.msdn.microsoft.com/sqlexpress/2011/12/08/using-localdb-with-full-iis-part-2-instance-ownership/