web-dev-qa-db-ja.com

SQLネットワークインターフェイス、エラー:50-ローカルデータベースランタイムエラーが発生しました。自動インスタンスを作成できません

MyDatabase.mdfフォルダーにApp_DataファイルがあるASP.NET MVC 5 Webアプリケーションを構築しようとしています。 LocalDbインスタンスを使用してSQL Server 2014 Expressをインストールしています。サーバーエクスプローラーを使用してデータベーステーブルを編集できますが、アプリケーションをデバッグし、データベースが必要なページに移動すると、次のエラーが表示されます。

SQL Serverへの接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからなかったか、アクセスできませんでした。インスタンス名が正しいこと、およびSQL Serverがリモート接続を許可するように構成されていることを確認してください。 (プロバイダー:SQLネットワークインターフェイス、エラー:50-ローカルデータベースランタイムエラーが発生しました。自動インスタンスを作成できません。エラーの詳細については、Windowsアプリケーションイベントログを参照してください。

そこで、Applicationの下のイベントビューアーを見て、何度も警告が1つだけ表示されるようにしました。

圧縮コンテンツ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内で編集できるのに、アプリケーションをデバッグするときにデータベースに接続できないのはどうしてですか?

72

LocalDBの重大な変更:SQL 2014に適用 ;この記事をご覧になり、サーバー名として(localdb)\mssqllocaldbを使用してLocalDB自動インスタンスに接続してみてください。次に例を示します。

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

また、この記事では、2012 SSMSを使用して2014 LocalDBに接続することにも言及しています。これにより、複数のバージョンのSQLがインストールされている可能性があることを信じるようになります。これにより、 this SO answer は、LocalDB "instance"のデフォルト名を今後発生する可能性のある他のバージョンの不一致の問題を回避します。問題の原因としてではなく、単一の開発マシンにインストールされた複数のSQLバージョンがもたらす可能性のある衝突の認識を高めるために...といくつかを避けるために習慣に入るべき何か。

言及する価値のある別のこと-この問題を試行して修正するためにインスタンスを使用できないためにインスタンスを使用できない状態にした場合、最初からやり直す価値があるかもしれません-アンインストール、再インストール-そしてv12.0の代わりにmssqllocaldb値を使用してみてください問題が修正されるかどうかを確認してください。

117
Bret

これを実行する:

sqllocaldb create "v12.0"

Cmd Promptからこれを解決しました...

35
Alex

私は通常、このmsdnブログ投稿に続くこのエラーを修正します 完全なIISでLocalDBを使用

通常、C:\ Windows\System32\inetsrv\configにあるapplicationHost.configファイルを編集する必要があります。 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>
31
Matteo

はじめに-commonLocalDb SqlExpress Sql Server接続エラーを引き起こす可能性のある4つの問題がありますSQL Network Interfaces, error: 50 - Local Database Runtime error occurred 、始める前にv11またはv12の名前を(localdb)\ mssqllocaldbに変更する必要がある

最も簡単なのは以下を行うことであることがわかりました-写真と手順を添付しました。

まず、インストールしたインスタンスを確認します。これを行うには、レジストリをチェックしますandcmdを実行して

  1. cmd> Sqllocaldb.exe i
  2. cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore"このステップが失敗した場合、オプションd cmd> Sqllocaldb.exe d "someDb"で削除できます
  3. cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"
  4. cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"

SqlLOCALDb_edited.png

編集1:すべてのバージョンのレジストリパスレジストリを追跡するための汎用形式

// SQL SERVER RECENT VERSIONS
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\(instance-name)

// OLD SQL SERVER
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServer
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer
// SQL SERVER 6.0 and above.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSDTC
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLExecutive
// SQL SERVER 7.0 and above

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLServerAgent
HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server 7
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServ65
19
transformer

インスタンスが破損しているか、適切に更新されていない可能性があります
これらのコマンドを試してください=>

C:\>sqllocaldb stop MSSQLLocalDB<br>
LocalDB instance "MSSQLLocalDB" stopped.

C:\>sqllocaldb delete MSSQLLocalDB<br>
LocalDB instance "MSSQLLocalDB" deleted.

C:\>sqllocaldb create MSSQLLocalDB<br>
LocalDB instance "MSSQLLocalDB" created with version 13.0.1601.5.

C:\>sqllocaldb start MSSQLLocalDB<br>
LocalDB instance "MSSQLLocalDB" started.
8
Musab

このエラーは、SQL Server is not installedのこのversionが原因である可能性があります

connectionString="Data Source=(LocalDB)\v12.0;....

そして、あなたはそれをインストールする必要はありません

最速の修正は、インストールされているバージョンに変更することです

私の場合、v12.0からMSSQLLocalDBに変更します

7

私は同じ問題に遭遇しました。私が修正したのは、<parameter value="v12.0" /><parameter value="mssqllocaldb" />に変更して「app.config」ファイルに入れることでした。

3
Kos

すべてはタイラーが言ったことに注意してください

このファイルを編集する場合は、メモ帳などの64ビットテキストエディターを使用してください。 Notepad ++のような32ビットを使用すると、代わりにSysWOW64のファイルの別のコピーが自動的に編集されます。人生の何時間も戻らない

3
130nk3r5

この問題の最終的な解決策は次のとおりです。

  1. 最初にapplicationHost構成ファイルに変更を加えます。以下の文字列を置き換えますsetProfileEnvironment = "false" TO setProfileEnvironment = "true"

  2. データベース接続文字列で、以下の属性を追加します。統合セキュリティ= SSPI

3
Dalip Choudhary

私の場合、1つのソリューションに複数のプロジェクトがあり、Code-First Migrationsで「Update-Database」コマンドを実行するときに、パッケージマネージャーコンソールとは異なる開始プロジェクトを選択しました。適切な開始プロジェクトを選択してください。

2
Michael Staples

上記の問題を解決します以下の手順を適用します

enter image description here

そして、これらの変更を行った後、web.configで次の変更を行います。

 <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v12.0;AttachDbFilename=|DataDirectory|\aspnet-Real-Time-Commenting-20170927122714.mdf;Initial Catalog=aspnet-Real-Time-Commenting-20170927122714;Integrated Security=true" providerName="System.Data.SqlClient" />
1
Sagar Shinde