我正在try 建立一个ASP.NET MVC 5 Web应用程序,App_Data文件夹中有MyDatabase.mdf个文件.我已经安装了SQL Server 2014 Express和一个LocalDb实例.我可以使用服务器资源管理器编辑数据库表,但是当我调试应用程序并转到需要数据库的页面时,我得到以下错误.

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

所以我在低于Application的事件查看器中查看,一遍又一遍只看到一个警告.

为缓存压缩内容C:\Users\User1\AppData\Local\Temp\iisexpress\IIS Temporary compressed Files\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; }
    }
}

我也有一个Controller设置来列出MyDatabase篇文章.

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中编辑它,但当我调试应用程序时,它无法连接到数据库?

推荐答案

Breaking Changes to LocalDB: Applies to SQL 2014; 查看本文,try 使用(localdb)\mssqllocaldb作为服务器名来连接LocalDB automatic实例,例如:

<connectionStrings>
  <add name="ProductsContext" connectionString="Data Source=(localdb)\mssqllocaldb; 
  ...

本文还提到了使用2012年的SSMS连接到2014年的LocalDB.这让我相信您可能安装了多个版本的SQL——这让我指出了this SO answer个建议,建议更改LocalDB"实例"的默认名称,以避免将来可能出现的其他版本不匹配问题;这并不是问题的根源,而是为了提高对单个开发机器上安装的多个SQL版本可能导致的潜在冲突的认识...以及一些可以养成的习惯,以避免一些.

另一件值得一提的事情是,如果你的实例由于试图修复这个问题而处于无法使用的状态,那么可能需要重新开始——卸载、重新安装——然后try 使用mssqllocaldb而不是v12.0,看看这是否能纠正你的问题.

Asp.net相关问答推荐

无法连接到 ASP.Net 开发服务器问题

ASP.NET Response.Redirect 使用 302 而不是 301

如何在 ASP.NET 中使用时区?

无法访问,内部,资源文件?

ASP.NET MVC4 jquery/javascript 包的使用

如何将 Castle Windsor 与 ASP.Net Web 表单一起使用?

在视图 Mvc.net 中访问路由值

如何确定 web.config 中的编译 debug="true"

在 Blazor 中 Select 框绑定

我需要更改什么以允许我的 IIS7 ASP.Net 3.5 应用程序创建事件源并将事件记录到 Windows EventLog?

asp.net cookie、身份验证和会话超时

AddDefaultTokenProviders:它是什么以及如何使用那些默认提供者?

ASP.NET IIS Web.config [内部服务器错误]

单独装配和路由中的控制器

svg 无法在 localhost 上的 IIS 网络服务器上运行

Web API 必填参数

HtmlAgilityPack Select 的子 node 不符合预期

Asp.Net web 服务:我想返回错误 403 禁止

ASP.NET Excel 导出编码问题

ASP.net 网站中的 C# 密码文本框