0

Telerik コントロールを使用する ASP.net 4.0 Web サイトがあります。最近、会社を離れた過去の開発者が Telerik コントロールのバージョンをアップグレードしました。

ウェブサイトはローカルでうまく機能し、公開してDEV環境に移動した後(以前のサイトは一掃され、公開された新しいサイト全体に置き換えられました)、問題なくうまく機能します.

公開されたバージョンを本番環境に移行するとすぐに、毎回エラーが発生し、次のメッセージが表示されます (スクリーンショットが添付されています)。

ファイルまたはアセンブリ 'Telerik.Web.Design, Version=2011.2.915.40, Culture=neutral, PublicKeyToken=121fae78165ba3d4' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。

そこに DLL が存在し、同じバージョン「2011.2.915.40」であることはわかっています。これを前後に移動したので、私は本当に困惑しています。何らかの理由で、prodに移動するとエラーになりますか?

エラーのスクリーンショット

エラーのスクリーンショット

4

3 に答える 3

3

だから私は本当にばかげているように感じますが、Telerik.Web.Design.dll を Prod のビンに追加する必要がありました。奇妙な部分は、DLL がこのプロジェクトの一部ではなく、ローカルで DEV がうまく機能したことです。

コンピューターで検索を行い、見つけて追加しました。Local と DEV がそれなしで機能した理由はわかりませんが、BIN に追加したことで修正されました。

Telerik.Web.Design.dll

于 2012-08-17T23:48:38.500 に答える
1

サイトがロードしようとしている Telerik アセンブリを見つけてみてください。ASP.NET 一時ファイルの古いバージョンに到達している可能性があります。私にも起こりました。

このような問題をデバッグするためAppDoman.AssemblyLoadに、 my にハンドラーを設定しましたGlobal.asax.cs

var appDomain = AppDomain.CurrentDomain;
appDomain.AssemblyLoad += AssemblyLoadEventHandler;

LogLoadedAssemblies();

これらを使用して:

private void LogLoadedAssemblies()
{
    var log = LogManager.GetLogger("AssemblyLoadHandler");
    foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
    {
        log.Info("Already loaded: " + assembly.FullName + " (" + (assembly.IsDynamic ? "dynamic" : assembly.Location) + ")");
    }
}

static void AssemblyLoadEventHandler(object sender, AssemblyLoadEventArgs args)
{
    LogManager.GetLogger("AssemblyLoadHandler").Info("Assembly loaded: " + args.LoadedAssembly.FullName + " (" + (args.LoadedAssembly.IsDynamic ? "dynamic" : args.LoadedAssembly.Location) + ")");
}

私は log4net ロガーを使用していますが、このコードをロギング インフラストラクチャに簡単に適応させることができると思います。

于 2012-08-17T15:19:04.273 に答える
0

私が遭遇したのと同じ問題のようです。必要なすべてのdllを本番環境のbinフォルダーに入れてみてください。

于 2012-08-17T15:48:03.280 に答える