首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SQL网络接口,错误: 50 -发生本地数据库运行时错误。无法创建自动实例

SQL网络接口,错误: 50 -发生本地数据库运行时错误。无法创建自动实例
EN

Stack Overflow用户
提问于 2014-10-08 10:26:59
回答 12查看 142.7K关注 0票数 82

我正在尝试构建一个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的类。

代码语言:javascript
复制
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设置。

代码语言:javascript
复制
namespace MyApplication.Controllers
{
    public class PostsController : Controller
    {
        private MyDatabase db = new MyDatabase();

        // GET: Posts
        public ActionResult Index()
        {
            return View(db.Posts.ToList());
        }
    }

在我的web.config文件中,连接字符串看起来像这样...

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

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2014-10-09 06:16:03

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

代码语言:javascript
复制
<connectionStrings>
  <add name="ProductsContext" connectionString="Data Source=(localdb)\mssqllocaldb; 
  ...

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

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

票数 125
EN

Stack Overflow用户

发布于 2014-12-17 18:49:34

运行以下命令:

sqllocaldb create "v12.0“

从cmd prompt为我解决了这个问题...

票数 42
EN

Stack Overflow用户

发布于 2015-09-04 21:52:32

我通常会在msdn博客文章Using LocalDB with Full IIS之后修复这个错误。

这需要编辑applicationHost.config文件,该文件通常位于C:\Windows\System32\inetsrv\

中。按照KB 2547655中的说明,我们应该为应用程序池ASP.NET v4.0启用这两个标志,如下所示:

代码语言:javascript
复制
<add name="ASP.NET v4.0" autoStart="true" managedRuntimeVersion="v4.0"     managedPipelineMode="Integrated">
    <processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="true" />
</add>
票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26248293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档