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内で編集できるのに、アプリケーションをデバッグするときにデータベースに接続できないのはどうしてですか?
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
値を使用してみてください問題が修正されるかどうかを確認してください。
これを実行する:
sqllocaldb create "v12.0"
Cmd Promptからこれを解決しました...
私は通常、この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>
はじめに-commonLocalDb SqlExpress Sql Server接続エラーを引き起こす可能性のある4つの問題がありますSQL Network Interfaces, error: 50 - Local Database Runtime error occurred
、始める前にv11またはv12の名前を(localdb)\ mssqllocaldbに変更する必要がある
v12.0
からMSSQLLocalDB
に変更しました-so so-> <connectionStrings> <add name="ProductsContext" connectionString="Data Source=(localdb)\mssqllocaldb; ...
最も簡単なのは以下を行うことであることがわかりました-写真と手順を添付しました。
まず、インストールしたインスタンスを確認します。これを行うには、レジストリをチェックしますandcmdを実行して
cmd> Sqllocaldb.exe i
cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore"
このステップが失敗した場合、オプションd
cmd> Sqllocaldb.exe d "someDb"で削除できますcmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"
cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"
編集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
インスタンスが破損しているか、適切に更新されていない可能性があります
これらのコマンドを試してください=>
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.
このエラーは、SQL Server is not installed
のこのversion
が原因である可能性があります
connectionString="Data Source=(LocalDB)\v12.0;....
そして、あなたはそれをインストールする必要はありません
最速の修正は、インストールされているバージョンに変更することです
私の場合、v12.0
からMSSQLLocalDB
に変更します
私は同じ問題に遭遇しました。私が修正したのは、<parameter value="v12.0" />
を<parameter value="mssqllocaldb" />
に変更して「app.config」ファイルに入れることでした。
すべてはタイラーが言ったことに注意してください
このファイルを編集する場合は、メモ帳などの64ビットテキストエディターを使用してください。 Notepad ++のような32ビットを使用すると、代わりにSysWOW64のファイルの別のコピーが自動的に編集されます。人生の何時間も戻らない
この問題の最終的な解決策は次のとおりです。
最初にapplicationHost構成ファイルに変更を加えます。以下の文字列を置き換えますsetProfileEnvironment = "false" TO setProfileEnvironment = "true"
データベース接続文字列で、以下の属性を追加します。統合セキュリティ= SSPI
私の場合、1つのソリューションに複数のプロジェクトがあり、Code-First Migrationsで「Update-Database」コマンドを実行するときに、パッケージマネージャーコンソールとは異なる開始プロジェクトを選択しました。適切な開始プロジェクトを選択してください。
上記の問題を解決します以下の手順を適用します
そして、これらの変更を行った後、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" />