3

サードパーティ アプリケーションへのプラグインとして機能する .NET 2.0 拡張機能を開発しました。Citrix 以外で実行すると、すべて正常に動作します。公開アプリケーションとして Citrix で実行すると、拡張機能がランダムにクラッシュし、サード パーティのアプリケーションもクラッシュします。

ダンプ ファイルを開いたところ、報告される例外メッセージが見つかりました。

スレッドが、適切なアクセス権を持たない仮想アドレスから読み書きしようとしました。

私はグーグルであまり運がありませんでした。アプリケーションは、上記が発生したと思われるスレッドを使用しますが、正確には謎です。拡張機能を citrix サーバーでローカルに実行すると (つまり、公開アプリとしてではなく)、正常に動作します。

問題の一般的な性質のため、ここで答えを期待していません (誰かがそうしてくれたら素晴らしいです!) が、誰かが問題を解決するのを助けるか、エラーメッセージを説明する方向に私を向けることができれば、私はとても感謝しています.

ありがとう、

ロブ

4

2 に答える 2

3

エラー メッセージの性質上、.NET 2.0 コードの問題である可能性は低いです。これは、.NET が想定していないメモリの読み取り/書き込みを試みることさえ許可しないためです。

  • unsafe拡張機能にコードがあるかどうかを確認します。この性質のコードは、CLR が通常実行する検証チェックを回避できる可能性があります。
  • 拡張機能がアンマネージ コード (COM または P/Invoke) を使用しているかどうかを確認します。そこでエラーが発生する場合があります。
  • .NET CLR にバグがあり、Citrix 環境で実行すると問題が発生する可能性があります。

最初に行うことは、そのダンプ ファイルを分析して、どのモジュールで障害が発生したかを確認することです。Windows Debugging Toolsをダウンロードして、この作業を支援できます。

于 2010-07-30T14:21:10.653 に答える
2

これが役立つかどうかはわかりません。

Schneider Unity Pro を使用してプロジェクトを開くと、同じメッセージが表示されました。面倒で時間のかかる削除プロセスの後、問題は「最近開いたドキュメントの履歴を保持しない」ポリシーが有効になっていることに切り分けられました。

于 2012-05-19T00:47:06.823 に答える