2011-01-20 7 views
0

同じコンピュータから2つのWebアプリケーションのコピーを(カッシーニを使用して)実行したかったのですが、不合理ではありませんでした。同じマシンにASP.NET MVC Webサイトのコピーを作成する - 大惨事?

  1. はカッシーニエクスプローラをオープンカッシーニとSQL Expressの
  2. コピーを停止し、サイトのルートフォルダのペースト(およびそれに改称)
  3. :だから私は、次のようでしたポート80、他の使用して、ポート81を使用したワンポート81で新しいサイトを設定し、コピーした場所を指すようにしました
  4. コピーしたサイトのweb.configを変更して、同じエイリアスを持つ2つのデータベースを接続できないため、接続文字列に "Database = NewAlias"を使用しました。
  5. 開始カッシーニとSQL Expressの再

私はNEWサイトですまで来る最初の事に閲覧:

物理ファイル を開くことができません

「C:\ site1 \ App_Data \ db_log.ldf "と入力します。 オペレーティングシステムエラー32: "32( プロセスは、別の プロセスによって が使用されているため、ファイルにアクセスできません)。ファイル「C:\ site2 \ App_Data \ db_log.LDF」を作成することはできません。既に存在していますので、 です。ファイル のパスまたはファイル名を変更し、 操作を再試行してください。データベースを開くことができません ログインによって「NewAlias」が要求されました。 ログインに失敗しました。ユーザー ' ' NT AUTHORITY \ SYSTEM 'のログインに失敗しました。ファイルの有効化 が失敗しました。物理ファイル名 "C:\ site1 \ App_Data \ db_log.ldf"は である可能性があります。 OLD場所(web.configファイルを新しい場所への正確なMDBのパスを指定した場合でも)からのMDFをオープンしようとしているが、NEW場所にログを作成しようとして

その。その後、すべてをオフにするには、OLDの場所からldfにアクセスできないヒントを削除するか、ログインしないでください。

本当に直感的なエラーのために、マイクロソフトとチームがもう一度やりました!誰も助けることができますか?

+0

LOL - 私が追加しなければならない真の何か。上記のエラーでmdfとldfを削除しようとすると、SQL Expressによって 'couldnt find'が呼び出されます。なぜなら、SQL Expressによってロックされているからです。P – Jimbo

+1

" Database = xxx "エイリアスを接続文字列。悲しいことに、その接続に対してバックアップコマンドを実行することができないことを意味します(stackoverflowが 'スロークラップ'絵文字を持っていたらいいですか?) – Jimbo

答えて

0

私はあなたがファイルを介してライブデータベースをコピーすることはできないと思います。最初にデタッチしてからコピーすると、ファイルを新しいデータベースとしてマウントすることで(sp_detach_db)ファイルを再接続できます。

sp_detach_db OldDb 

その後、新しいデータベースとして(sp_attach_dbで)DBファイルを再接続し、フォルダをコピーします。

sp_attach_db NewDb, "C:\copy of site\App_Data\db_data.mdf", "C:\site1\App_Data\db_log.ldf" 
+0

このような状況のためのもう1つの非常に便利なコマンドは、 – Jimbo

0

時々こういうことをやったときに発生する(と漠然とエラーメッセージによって逃れされた上記のシナリオではなかった)もう一つの大きな問題は、コピーしたMDFファイルが使用されているものの、そのはまだリンクされていることです元のLDF(ログファイル)にコピーします。あなたは、ファイルが接続されたインスタンスのために使用されているかのリストを取得するには、このコマンドを実行することができます:あなたがから

name fileid filename filegroup size maxsize growth usage 
========================================================= 
db 1 C:\site2\App_Data\db.mdf PRIMARY 24192 KB Unlimited 1024 KB data only 
db_log 2 C:\site1\App_Data\db_log.ldf  78080 KB 2147483648 KB 10% log only  

見ることができます応答としてあなたにこのような何かを与える

sp_helpfile 

ログファイルが明らかに問題を引き起こす古いデータベースと共有されているので、コピーしたログファイルを次のように変更することができます:

ALTER DATABASE NewAlias MODIFY FILE (NAME = db_log, FILENAME='c:\site2\App_Data\db_log.ldf') 
関連する問題