我正在尝试构建一个ASP.NET MVC5Web应用程序,它的App_Data
文件夹中有一个MyDatabase.mdf
文件。我安装了SQL Server2014Express和一个LocalDb
实例。我可以使用Server Explorer编辑数据库表,但是,当我调试应用程序并转到需要数据库的页面时,我得到以下错误。
建立与SQL Server的连接时发生与网络有关的错误或特定于实例的错误。服务器找不到或无法访问。请验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序: SQL网络接口,错误: 50 -发生本地数据库运行时错误。无法创建自动实例。有关错误详细信息,请参阅Windows应用程序事件日志。
因此,我查看了Application
下的事件查看器,一遍又一遍地只看到一个警告。
为缓存压缩内容C:\Users\User1\AppData\Local\Temp\iisexpress\IIS临时压缩文件指定的目录
\Clr4IntegratedAppPool无效。正在禁用静态压缩。
所以我试着重启服务器,还是不行。与之前相同的错误50。
我在Models
下创建了一个类,其中有一个名为Post
的类。
namespace MyApplication.Models
{
public class Post
{
public int Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
}
public class MyDatabase : DbContext
{
public DbSet<Post> Posts { get; set; }
}
}
我也有一个列出来自MyDatabase
的帖子的Controller
设置。
namespace MyApplication.Controllers
{
public class PostsController : Controller
{
private MyDatabase db = new MyDatabase();
// GET: Posts
public ActionResult Index()
{
return View(db.Posts.ToList());
}
}
在我的web.config
文件中,连接字符串看起来像这样...
<connectionStrings>
<add name="DefaultConnection"
connectionString="Data Source=(LocalDB)\v12.0;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
我试过在here上发布的建议,但不起作用。我也尝试过this。
我还注意到,在我开始运行应用程序之后,MyDatabase实例断开了连接。如果我在Visual Studio中使用服务器资源管理器刷新数据库,则可以查看这些表。
为什么我可以连接到数据库并在Visual Studio 2013中编辑它,但当我调试应用程序时,它无法连接到数据库?
发布于 2014-10-09 06:16:03
Breaking Changes to LocalDB: Applies to SQL 2014;请查看本文,并尝试使用(localdb)\mssqllocaldb
作为服务器名来连接到LocalDB automatic实例,例如:
<connectionStrings>
<add name="ProductsContext" connectionString="Data Source=(localdb)\mssqllocaldb;
...
文章还提到了使用2012年的SSMS来连接2014年的LocalDB。这使我相信您可能安装了多个版本的SQL -这导致我指出this SO answer建议更改您的LocalDB“实例”的默认名称,以避免将来可能出现的其他版本不匹配问题;提到不是作为问题的来源,而是为了提高人们对安装在一台开发机器上的多个SQL版本可能导致的潜在冲突的认识。并养成一些习惯,以避免一些。
另一件值得一提的事情是--如果你的实例因为试图修复这个问题而处于不可用的状态,那么可能值得重新开始--卸载,重新安装--然后尝试使用mssqllocaldb
值而不是v12.0
,看看这是否能纠正你的问题。
发布于 2014-12-17 18:49:34
运行以下命令:
sqllocaldb create "v12.0“
从cmd prompt为我解决了这个问题...
发布于 2015-09-04 21:52:32
我通常会在msdn博客文章Using LocalDB with Full IIS之后修复这个错误。
这需要编辑applicationHost.config文件,该文件通常位于C:\Windows\System32\inetsrv\
中。按照KB 2547655中的说明,我们应该为应用程序池ASP.NET v4.0启用这两个标志,如下所示:
<add name="ASP.NET v4.0" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated">
<processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="true" />
</add>
https://stackoverflow.com/questions/26248293
复制相似问题