0

Newtonsoft.JSON ライブラリを使用して .NET 2.0 C# プロジェクトに取り組んでいます。web.config ファイルを確認すると、すべてのアセンブリが 2.0 バージョンを参照しています。

ただし、サーバーにデプロイすると、次のエラーが発生します。

    Could not load file or assembly 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IO.FileNotFoundException: Could not load file or assembly 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.

Source Error:


Line 21:     }
Line 22: 
Line 23:     Dictionary<string, string> config = JavaScriptConvert.DeserializeObject<Dictionary<string, string>>(jason);
Line 24: 
Line 25:     if (Request.Form["login"] == config["adminLogin"] && FormsAuthentication.HashPasswordForStoringInConfigFile(Request.Form["password"], "sha1") == config["adminPass"])


Source File: c:\Website\WSRecrut\Test\ConnectionPost.aspx    Line: 23

Assembly Load Trace: The following information can be helpful to determine why the assembly 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' could not be loaded.


WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].


Stack Trace:


[FileNotFoundException: Could not load file or assembly 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.]
   Newtonsoft.Json.Utilities.CollectionUtils.CreateDictionaryWrapper(Object dictionary) in D:\Newtonsoft\Projects\Json\trunk\Src\Newtonsoft.Json\Utilities\CollectionUtils.cs:422
   Newtonsoft.Json.JsonSerializer.CreateObject(JsonReader reader, Type objectType, Object existingValue) in D:\Newtonsoft\Projects\Json\trunk\Src\Newtonsoft.Json\JsonSerializer.cs:223
   Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType) in D:\Newtonsoft\Projects\Json\trunk\Src\Newtonsoft.Json\JsonSerializer.cs:169
   Newtonsoft.Json.JavaScriptConvert.DeserializeObject(String value, Type type, JsonConverter[] converters) in D:\Newtonsoft\Projects\Json\trunk\Src\Newtonsoft.Json\JavaScriptConvert.cs:512
   Newtonsoft.Json.JavaScriptConvert.DeserializeObject(String value, JsonConverter[] converters) in D:\Newtonsoft\Projects\Json\trunk\Src\Newtonsoft.Json\JavaScriptConvert.cs:485
   Newtonsoft.Json.JavaScriptConvert.DeserializeObject(String value) in D:\Newtonsoft\Projects\Json\trunk\Src\Newtonsoft.Json\JavaScriptConvert.cs:457
   ASP.connectionpost_aspx.__Render__control1(HtmlTextWriter __w, Control parameterContainer) in c:\Website\WSRecrut\Test\ConnectionPost.aspx:23
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +2113547
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
   System.Web.UI.Page.Render(HtmlTextWriter writer) +26
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1896

誰かアイデアはありますか?3.5のそのアセンブリはどこから来ることができますか?

4

3 に答える 3

2

1、パーサー エラー メッセージ: ファイルまたはアセンブリ 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。

目的のマシンに .NET Framework 3.5 がインストールされているかどうかにかかわらず、投資することをお勧めします。検証ツールをダウンロードして、目的のマシンで .NET Framework の状態を検証できます。次のリンクをクリックできます。

http://blogs.msdn.com/b/astebner/archive/2008/10/13/8999004.aspx

2、WRN: アセンブリ バインディングのログがオフになっています。

アセンブリ バインド エラー ログを有効にするには、レジストリ値 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) を 1 に設定します。

注: アセンブリ バインドの失敗ログに関連するパフォーマンスの低下があります。

この機能をオフにするには、レジストリ値を削除します

うまくいかない場合は、エラー情報に基づいてレジストリを変更できます。

次の手順を 1 つずつ実行できます。

1、「ファイル名を指定して実行」を開く</p>

2、「regedit」と入力します</p>

3、レジストリをバックアップする

4、レジストリでキーを検索します

5、エラー情報に基づいて値を変更します

于 2012-07-16T18:23:16.567 に答える
1

このデータを取得する別の方法は、例外の詳細を確認することです...デバッガーが実行されていることを確認し、例外で停止して詳細を確認する必要があります。

これはすべて、構成の問題 (詳細がすべてである可能性があります。「aspnet_regiis -lk」からの出力など、すべてを再確認してください)、または .NET インストールが破損しているようです (ただし、これは可能性が低いようです)。 )。

そうしないと 、

「'System.Web.Extensions」は、GAC にインストールする必要がある厳密な名前のアセンブリです。ファイルが見つからないという問題は、サブ ディレクトリの相対パスの問題が原因ではありません。私の意見では、問題は AJAX 1.0 拡張機能がサーバーにインストールされていないことです。

この問題を解決するには、「アセンブリ」セクションから「1.0.61025.0」バージョンの「System.Web.Extensions」アセンブリを削除します。あなたが言ったように、それをした後、LINQアセンブリが見つからないという問題が発生します。この問題については、サーバーに .NET Framework 3.5 がインストールされているかどうかを確認することをお勧めします。

于 2012-07-16T18:17:01.437 に答える
1

間違ったNewtonSoft.Json.dllライブラリが含まれていると思われます。複数のアセンブリがありますが、そのうちの 1 つだけが .NET 2.0 をサポートしています。

Reflector/JustDecompile がある場合は、内部クラスがあることを確認できます。これにより、 LINQ メソッドNewtonsoft.Json.Utilities.LinqBridgeを使用しなくても済むようになります。System.Core

ファイルの詳細の説明にも .NET 2.0 が含まれています。

于 2012-07-16T20:54:17.060 に答える