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

Zac*_*Zac 7 c# sql asp.net iis asp.net-mvc

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

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-EBC-20141127093222.mdf;Initial Catalog=aspnet-EBC-20141127093222;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

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


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

我知道我需要允许通过microsoft sql server manager远程连接到sql server?有没有办法在别处做?

Ano*_*eek 8

最好的解决方案是使用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
    
    Run Code Online (Sandbox Code Playgroud)