2014-12-05 82 views
6

我将在本地网络上演示一个ASP.NET MVC网站。此应用程序与数据库的连接:如何让IIS从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> 

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


“发生网络相关的或特定于实例的错误,服务器未找到或无法访问。验证实例名称是否正确,并将SQL Server配置为允许远程连接(提供程序:SQL网络接口,错误:50 - 发生本地数据库运行时错误在LocalDB实例API方法调用中发生意外错误。事件日志的错误细节。“

我知道我需要允许远程连接到SQL Server通过微软SQL服务器管理器吗?有没有办法做到这一点els ewhere?

回答

6

最好的解决方法是使用SQL表达式,但如果你不希望有您需要做的几个步骤,让您的MVC应用程序的工作与的LocalDB

  1. 打开Visual Studio命令提示符以管理员身份
  2. 执行sqllocaldb share v11.0 IIS_DB(然后将数据库共享,IIS可以访问它)
  3. 改变网站的连接字符串指向数据库的共享实例: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 
    
3

当有安装在SQL Server的LocalDB的多个版本一台机器,这个错误很常见。

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

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

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

相关问题