みなさん、こんにちは。
今回は、ちょっとやってしまったことととりあえず解決したので書いておきます。
ASP.net + Oracle で.NET Frameworkのバージョン及びOracleのバージョンが後から変わってしまったという状況でした。
一度構築した状態で、一旦そのソースも取っておきたかったので、パスのみ変更して、新しい環境を元のフォルダ名で作成しました。
すると、ビルドは通るのですが、実行時にエラーとなります。
デバッグ実行時のビルド中にも以下の警告が出ていました。
構築されているプロジェクトのプロセッサ アーキテクチャ "MSIL" と、参照 "Oracle.DataAccess,xxxxx" のプロセッサ アーキテクチャ "AMD64" の間には不一致がありました。この不一致は、ランタイム エラーを発生させる可能性があります。プロジェクトと参照の間でプロセッサ アーキテクチャが一致するように、構成マネージャーを使用してターゲットとするプロジェクトのプロセッサ アーキテクチャを変更するか、ターゲットとするプロジェクトのプロセッサ アーキテクチャに一致するプロセッサ アーキテクチャとの依存関係を参照で設定することを検討してください。
コピーせずに作成した環境ではうまくいった内容です。
おかしいと思い、Web.configを書き換えたり、プロジェクトのプロパティを変更してみたり、IISの設定を変更してみたりといろいろ対応してみました。
どうもコピー前の環境のみを認識しているようで、設定した内容が反映されません。
そこで名前変更した環境も削除しました。それでも現象が変わりません。
どう考えても構成ファイル(config)がおかしいらしいと思い、いろいろと階層をたどっていったところ、Users/Documents/IISExpress/Config/applicationhost.configにコピー前のフォルダ名での設定が残っていました。
なんだと思い、こちらの情報を削除したところ、今度は実行後のブラウザに以下のメッセージです。
構成パス 'MACHINE/WEBROOT/APPHOST/XXX-SITE' を認識できません
上記サイトの情報は残っていますが読み込めないというのです。
そこで、上記ファイルから 'XXX-SITE' 自体の部分をすべて削除し、
再度VisualStudioを管理者モードで起動して、
「IIS Expressを使用する」にチェックし、
プロジェクトのURLで「仮想ディレクトリの作成」
を行ったところ、正しく動作することができました。
applicationhost.configにも新たに 'XXX-SITE' の記述が追加されていました。
おそらく、上記Configファイルは基本的に手動でいじるようなファイルではないと思いますが、
フォルダコピーなどでIIS Expressでの動作がおかしくなったときには
こちらを見てみるのも良いかと思います。
※編集される場合は自己判断でお願いします。