7

ヘルプ!!要求された URL の正しいテンプレートを取得する目的で、(ルート レベル) App_Code ディレクトリの下に単一の .cs ファイルがあります (これは、独自のコンテンツ管理データベースにリンクされています)。最初は問題なく動作していました - 変更を加えることができ、それらは Web アプリケーションによって取得されました。その後、何かが発生し (何が原因かわかりません)、変更を加えても認識されません。App_Code ディレクトリ全体を削除しても、違いはありません。App_Code ディレクトリにあったものの以前の (キャッシュされた??) バージョンをまだ取得しているようです。.cs ファイルのコードは次のとおりです。

using System;
using Custom.CMS.Facade;
using Custom.CMS.BO;
public class CMHttpModule : IHttpModule
{
    code here...
}

ウェブサイトをライブサーバーにコピーした後でも、同じ問題が発生します。

私が理解していないのは、.cs コードに意図的なエラーを導入してもコンパイル エラーが発生し、コンパイルが成功すると C:\WINDOWS\Microsoft.NET\Framework の下に App_Code.xxxx.dll が作成されるということです。 \v2.0.50727\Temporary ASP.NET ファイル

では、Web アプリケーションが実際に取得する App_Code のバージョンはどれでしょうか? 「正しい」ものを拾うにはどうすればよいですか?

参考までに、C#、Visual Web Developer Express 2008、および IIS 6 Web サーバーを使用しています。

任意の支援をいただければ幸いです。

4

6 に答える 6

6

ソリューションを再度開いても機能します。

于 2013-04-18T05:36:04.380 に答える
3

ファイルを右クリックして、プロパティに移動し、ビルド アクションを確認できますか。「コンパイル」に設定する必要があります。

于 2012-07-25T13:34:53.900 に答える
3

Web アプリケーションをどのように公開しているのか正確にはわかりませんが、いくつか試してみることができます。

  • 前述のように、独自の C# プロジェクトからビルドされている DLL のファイル参照ではなく、プロジェクト参照を使用していることを確認してください。また、App_Codeディレクトリ内の .cs ファイルが次のようにBuild Action設定されていることを確認してください。Compile
  • すべてのプロジェクトが同じ .NET フレームワーク (v2.0、v3.5、v4.0、または v4.5) をターゲットにしていることを確認します。これは、各プロジェクトApplicationの のタブで確認できます。Client Profile バリエーションは使用しないPropertiesでください。
  • ソース コードで、ビルドした DLL (通常は bin フォルダーと obj フォルダーにあるもの) を削除してから、Visual Studio を使用してフル ビルドを実行します。これはリビルドと同等です (読み取り: クリーンしてからビルド)。次に、Web サーバーに公開します。
  • 当たり前のことを言う危険を冒して、サイトを表示するために使用している Web ブラウザーのキャッシュが、サイトにアクセスする前にクリアされていることを確認してください。

お役に立てれば。

編集: ふと思ったのですが、このASP.NET Web アプリケーションは実際にはWeb サイトですか? その場合、コードの変更がASP.NET コンパイラによって認識されない可能性があります。

ASP.NET Webサイトと ASP.NET Webアプリケーションの主な違いは、サイトがインストールまたは更新された後、最初に要求が受信されたときに、通常、サーバー上の ASP.NET によって動的に (自動的に) コンパイルされることです。 、後者は公開される前に完全に DLL にコンパイルされます。詳細については、上記のリンクを参照してください。

于 2012-07-31T05:49:40.760 に答える
1

@ショーン -

1) Web.Config を完全に削除するのではなく、変更しようとしましたか? Web.Config はキャッシュされますが、そのリビジョンはアプリケーション キャッシュをリサイクルする必要があります。

2) サイト全体を吹き飛ばして、最初からコピーしようとしましたか? (特に、bin ディレクトリ内のプリコンパイル済みファイルを削除して再コピーしてください。)

@パトリック -

1) 一時 ASP.Net ファイル ディレクトリ内のすべてを削除しようとしましたか?

2) ソリューション (スタートアップ プロジェクトではない) の依存プロジェクトにリビジョンがあった場合、それらの依存プロジェクトを個別に手動で再構築しましたか?

3) IIS でライブ Web サイトのアプリケーション プールをリサイクルするためのアクセス権はありますか?

4) ライブ Web サイトをゼロから再コピーしたり、ライブ Web サイトの Web.Config を変更したりしましたか?

一般的なアプリ キャッシュのヒント -

  • 多くの場合、Web.Config ファイルに簡単な変更を加えることで、アプリケーション キャッシュを更新できます。

  • このスレッドで説明されているように、Global.asax の変更、bin ディレクトリの変更、および App_Code の変更によっても、アプリケーション プールの更新がトリガーされる場合があります。

  • 長期的な解決策として、 File Dependency またはSQLCacheDependency Classを使用してアプリケーション キャッシュを管理することをお勧めします。(最後の提案は、GoDaddy のような共有ホスティング サイトでは機能しない可能性があります。)

于 2012-07-31T14:11:28.713 に答える
1

昨日同じ問題が発生し、Web サイト プロジェクトのクラス ライブラリ参照がクラス ライブラリ プロジェクトを指していることを確認して修正しました (bin フォルダー内の dll ではありません)。

Web サイトが .net 2.0 をターゲットにしており、クラス ライブラリが .net 3.5 にあるため、Web サイト プロジェクトは再構築された dll を無視し、Web サイト プロジェクトの bin フォルダーにあるものを使用したようです。

于 2011-09-21T10:27:11.193 に答える