9

Newtonsoft.Json in my C# TBBコンポーネントを処理し、Json データを生成するために.Net dll を使用しています。既にこの dll を に追加していGAC[Global Assembly Cache]ますが、同様に機能します。しかし、時々うまくいかず、公開中に次のエラーが発生します。

JScriptException: Expression 'RenderComponentPresentation()' had error 'Could not load file or assembly 'Newtonsoft.Json, Version=4.0.5.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.'

しかし、Tridion でページをプレビューすると、問題なく動作します。この問題を修正するために、 を再起動しTridion Services、再起動後にページを公開します。問題なく動作します。しかし、この問題は何度も繰り返され続けています。この問題を永久に解決する方法はありますか?

最近、すでに公開中のページを再度公開したところ、問題が再現できました。2 回目の公開試行では上記のエラーが返されましたが、2 回目の公開試行が失敗した後に最初の公開試行が終了し、Success. この奇妙な動作の理由。

4

3 に答える 3

6

プラットフォームが正しく設定されていないことがあります。プロジェクトを右クリックし、フレームワークを 4.0 (または互換性のあるもの) に設定して dll を使用し、これを確認します。次に、アプリケーションを閉じて、もう一度実行してみてください。プラットフォームが .NET Framework 4 クライアント プロファイルに設定されている可能性があります。

于 2012-03-28T12:23:40.783 に答える
6

サービスを再起動した後にうまく機能するという事実がなければ、これは NewtonSoft.Json が依存するアセンブリに関するものだと思っていたでしょう。そのようなアセンブリがある場合は、それらも GAC に登録する必要があります。パブリッシャー プロセスは、必ずしも (プレビューを実行する) Tridion カーネルと同じアプリケーション フォルダーまたはプローブ パスを持っていないことに注意してください。

Chris が言うように、これはスレッド化の問題かもしれませんが、この種の奇妙さはメモリ不足で現れることがあります。パブリッシャー プロセスのメモリ使用量を監視して、リークがあるかどうかを確認できますか?

于 2012-03-28T17:55:47.500 に答える
3

Fusion のログ ファイルには、失敗した理由の詳細が示されます。このツールを既に使用しましたか?

Fuslogvw.exe (アセンブリ バインド ログ ビューアー)

それ以外では、.NET 4.0 用の最新の JSON.NET バージョンを入手し、すべてのパブリッシュ サーバーに適切なバージョンをデプロイすることをお勧めします。

于 2012-07-16T14:10:10.990 に答える