如何允许IIS从ASP.NET MVC项目中使用本地数据库?

我将在本地网络上演示ASP.NET MVC网站。 此应用程序与数据库连接:

   

我想如果IIS和每当我在本地运行我的应用程序时都可以使用这个数据库。 我在IIS上创建了一个站点 – 它运行的是.NET v4。 我的项目位于c:\inetpub\www\ebc 。 我可以发布网站,但在查看页面时收到此错误:


“建立与SQL Server的连接时发生与网络相关或特定于实例的错误。未找到服务器或无法访问服务器。validation实例名称是否正确以及SQL Server是否配置为允许远程连接。(提供程序: SQL网络接口,错误:50 – 发生本地数据库运行时错误。在LocalDB实例API方法调用中发生意外错误。请参阅Windows应用程序事件日志以获取错误详细信息。

我知道我需要允许通过microsoft sql server manager远程连接到sql server? 有没有办法在别的地方做到这一点?

最好的解决方案是使用SQL Expression但是如果你不想要的话,你需要做的几个步骤才能让你的mvc应用程序与localdb一起工作

  1. 以管理员身份打开Visual Studio命令提示符
  2. 执行sqllocaldb share v11.0 IIS_DB (然后数据库将被共享,IIS可以访问它)
  3. 将站点连接字符串更改为指向DB的共享实例: Data Source=(LocalDb)\.\IIS_DB然后再次发布

请注意,此时您可能会收到访问拒绝错误,并且有如何修复它

  1. 转到visual studio => databaseexplorer =>添加连接
  2. 对于服务器名称,输入(LocalDb)\.\IIS_DB然后右键单击连接并选择新查询并执行此命令

     create login [IIS APPPool\DefaultAPPPool] from windows; exec sp_addsrvrolemember N'IIS APPPool\DefaultAPPPool, sysadmin 

如果在计算机中安装了多个版本的SQL Server localDB,则此错误非常常见。

尝试使用(localdb)\mssqllocaldb作为连接到LocalDB自动实例的公共服务器名称,而不是“v11.0”或“v12.0”。

上面的自动localdb实例在所有版本中都有一个默认名称,并避免名称和版本之间的冲突。

重要说明 :将localdb更新为新版本时,请记住使用旧版本创建的数据库不适用于较新版本。

看到这篇文章:使用LocalDB和完整IIS的这两篇post应该会为您提供更多信息。 特别是第二部分看似相关,但第一部分也包含一些背景。

  1. 第1部分:用户配置文件
  2. 第2部分:实例所有权

信用: IIS连接到LocalDB