Web サイトがコード ビハインド ファイルを探す場所 (ディレクトリなど) を決定する ASP.NET の設定は何ですか?
asp.net c# Web サイトには、Live と Dev の 2 つのバージョンがあります。
ライブ サイト: c:\dev\websites\examplecom_new にページとコードがあるwww.example.com
開発サイト: c:\dev\websites\ examplecom -d2 にあるページとコードを含む d3.example.com
ライブ サイトのディレクトリが _new で終わる歴史的な理由と、開発サイトのホスト名が d3 で、ディレクトリ名が -d2 である理由がありますが、それらは機能しており、現在まで問題はなく、次のリリースのために d3 で開発を行っています。生きること。
私は最近、開発サイトをライブサイトの正確なコピーになるように更新し (通常、新しいラウンドの作業を開始する前にこれを行います)、いくつかの開発作業を開始しました。しかし、Web サイト経由でコードを実行しようとすると、ブラウザーに Dev URL d3.example.com が表示されていても、エラー メッセージはライブ サイトの Web ディレクトリ c:\dev\examplecom_new のコード ファイルを参照していました。開発バージョン c:\dev\examplecom-d2 ではありません。
コードを詳しく調べて、www サイトまたはライブ サイト ディレクトリへのパスへのハードコーディングされた参照がないことを確認しました。すべての場合のコード ファイルは、.aspx ファイル内でローカル リンクとして参照されます。次に例を示します。
<%@ Page Language="C#" MasterPageFile="~/ExampleCom.master" AutoEventWireup="true"
CodeFile="Checkout.aspx.cs" Inherits="Checkout" Title="Untitled Page" %>
ええ、私は「無題のページ」が世界で最も役立つタイトルではないことを知っています. :)
web.config を調べ、app_code\general.cs を調べ、IIS の Properties 要素のすべてのタブを確認しましたが、サイトに .cs ファイルを使用するように指示している可能性のあるものは何も見つかりませんdev の代わりに live ディレクトリから。
以前の (更新前の) バージョンの Dev サイトを復元しようとしました (念のため、置き換える前に常にバックアップします)。同じ問題として、チェックアウト ページは、その URL がブラウザーで開発バージョンを表示している場合でも、開発ではなくライブからコードを呼び出します。
言うまでもなく、これはショーストッパーのようなものです。発生しているエラーは、ライブと開発の間のセッションの不一致が原因のようですが、開発サイトがコードの代わりにライブ サイトからコードを呼び出している理由がわかりません自分のディレクトリ。間違っている可能性があることへのポインタをいただければ幸いです。「間違ったディレクトリから呼び出されたasp.netコードビハインドファイル」と関連する検索の両方をグーグルで試し、同じタイプのものをスタックオーバーフローで検索しましたが、関連するものは何も見られませんでした。コンパイル済みのバイナリは使用せず、標準の .aspx ページと .aspx.cs C# コード ファイルのみを使用します。
最初は、ハードコーディングされたリダイレクトが開発からライブにキックオーバーしたに違いないと思いましたが、その痕跡は見られず、ブラウザのアドレスバーにはまだ d3.example.com/Checkout.aspx が表示されますwww バージョンに変更するためにライブへのリダイレクトが必要でした。
Web サーバーは IIS 6 で、ASP 2 を実行しています。