2016-12-07 8 views
0

私の3つの環境はすべて異なる動作をしています。EFは動作しますが、データベースは見つかりません(ただし、テスト環境のみ)

EFには、私が選んだMVC Webサイトのプロジェクトテンプレートが付属しています。私はApp_Dataフォルダにmdfファイルを持っています。場所とファイル名は、私が想定しているナゲットインストーラによって決定されました。アイデンティティフレームワークはそれを使用します。あなたにいくつかの文脈を与える。

マイweb.config EF接続文字列は次のとおりです。

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-AACOMvc-20160730112925.mdf;Initial Catalog=aspnet-AACOMvc-20160730112925;Integrated Security=True" providerName="System.Data.SqlClient" /> 

これはどんなテンプレート/インストーラが提供する接続文字列です。

ローカルマシン

それは動作します。私が接続文字列またはmdfファイル名を混乱させると、それは壊れます。だから私はそれがそのファイルに当たっていることを知っている。

テスト環境

それは動作します。私がApp_Dataフォルダを公開していないので面白い!私はmdf(それが作成された?)を探してそのボックス全体を検索しましたが、1つではありません。私がweb.configの接続文字列をコメントアウトしても、それはまだ動作します!それは "スマート"で "卑劣な"と私はそれが好きではない! :)

生産環境

それは動作しません。 App_Dataフォルダをコピーしても、「ファイルが見つかりません」というエラーで失敗します。

この質問は、テスト環境に焦点を当てています。それがどのように機能しているかを知ることができれば、私はそれをプロダクションでの作業に近づけることができます。

+0

あなたのユーザープロフィールフォルダを確認しましたか? C:\ Users \ユーザー名https://blogs.msdn.microsoft.com/sqlexpress/2011/10/28/localdb-where-is-my-database/ –

+0

@SteveGreene、[警告:愚かさを先に]私は離れてそれはサブフォルダがなく、単に "ドキュメント"のような擬似サブフォルダしかありませんでした。 * .mdfのCのルートからの検索では何も得られませんでした。また、IISはユーザーフォルダでもありますか?どのユーザーですか? – toddmo

答えて

0

これは、EF接続文字列をSQL ServerファイルではなくSQL Serverインスタンスに変更することで解決しました。 EFはデータベースにテーブルを作成していないb/c私は定義されたエンティティを持っていません。

関連する問題