3

アプリの起動時に表示される説明のないエラーメッセージ「割り当てを設定できません」について、お客様からの不定期の報告に数年間悩まされてきました。これまで、独自のテスト環境で問題を再現することはできませんでした。私は今、これを追跡しようとするためのアイデアを使い果たしました。これは、時間の経過とともに蓄積された観測のコレクションです。

  • エラーメッセージテキストには、「割り当てを設定できません」と表示されます(句読点がないことに注意してください)。
  • ウィンドウのタイトルは単に「エラー」(またはローカライズされた同等のもの)と表示されます。
  • 「割り当てを設定できません」というテキストは、OSのロケールに関係なく、常に英語で表示されます。
  • これまでのところ、メッセージテキストを含むDLLまたはEXEを見つけることができませんでした。

  • Googleは、さまざまな製品に関するこのエラーの報告でいっぱいですが、解決策はありません。

  • 私がこれまでに理解できた影響を受けた製品間の唯一の統一的な側面は、それらがすべてサードパーティのプロセス(VisualStudioやWindowsExplorerシェル拡張機能のアドインなど)に読み込まれるDLLの形式で提供されているように見えることでした。

  • 私たちのアプリは、実際にはDelphiで記述されたMS Outlook用のシェアウェアCOMアドインです(つまり、ネイティブコード-.NETなし)。

  • 私たちの場合の主な容疑者は、DLLをその場で復号化してメモリに解凍する、使用しているサードパーティのライセンスラッパーです。明らかに、この疑いを確認するために、影響を受けた顧客に保護されていないバージョンのアプリを提供することはできませんでした。おそらく、これが報告されている他のベンダーが同様の製品を使用しています。

  • ライセンスベンダーから提供された保護ラッパーのデバッグバージョンでは、結果は得られませんでした。ログファイルは、エラーが発生しなかったセッションのログファイルとまったく同じように見えました。どうやら「内部」DLLは正常に復号化および解凍されますが、何らかの理由でホストプロセスによるロードに失敗します。

  • 保護されていない「ローダー」DLLを作成することにより、LoadLibraryDLLをメモリにロードすることになっている呼び出しの背後のどこかでエラーの発生を特定することができました。

  • 独自のコード(保護されていないローダーと保護された「コア」-DLLの両方)での広範なロギングとグローバル例外フックは、まったく結果をもたらしませんでした。エラーは明らかにどこか別の場所で発生します。

  • 私のこの以前の質問で説明された問題は、おそらく同じ問題によって引き起こされました。これは、保護されていないローダースタブを作成する前のことです。

  • エラーはお客様の約1〜2%でのみ発生しますが、通常、影響を受けるお客様のサイトのすべてのインストールは同じように影響を受けます。

  • 新しいバージョンをリリースした後にエラーが消えることがありますが、多くの場合、数週間または数か月後に再びエラーが発生します。
  • マシンでエラーが発生し始めると、それは一貫して発生します。
  • リモートアクセス(VNC、RDP、TeamViewerなど)を介して影響を受けるマシンに接続している間はエラーが発生することはなく、影響を受ける顧客は誰も私たちから移動距離内にいないため、ログファイルと「目-目撃者の報告」。

  • ある顧客は、エラーメッセージダイアログが明らかに非モーダルであると報告しました。つまり、ダイアログボックスを横に移動して、アプリケーションでの作業を続行できました(DLLが提供する機能を除く)。これが他のすべての出来事にも普遍的に当てはまるかどうかはわかりません。

  • 場合によっては、お客様は、ホストアプリケーションを自社製品と共有していた他のベンダーの他のアドインを無効にするかアンインストールすることで、エラーを完全に取り除くことができました。

  • このエラーは、これまでのところWindows XP、Vista、および7で確認されています。

  • 過去数週間の間に、Outlook 2003 /Windows7ユーザーからのレポートが急増しました。最近のWindows/Officeの更新によって状況が悪化した可能性はありますか?

誰かがこのエラーの経験がありますか?

または、これを調査するためのアイデアは他にありますか?

4

7 に答える 7

2

私は最近これが起こったばかりで、それが私の検索を促し、私はここに行き着きました。私は確かにそれがWindows7ホームプレミアムにあると言うことができますが、IE9(ちなみに私は嫌いです)でのみ、ユーザーをダミーステージに戻し、すべてについて繰り返しフラグを立てる必要があると想定しています。アドオンを無効にして読み込み時間を短縮するかどうかを尋ね続けますが、通常、そもそもブラウザの速度を低下させるものではないものでは、そもそもゴミの読み込みが多すぎます。 「割り当てを設定できません」に戻ると、私は他のブラウザでそれを期限切れにしたことは一度もありません。

于 2012-11-29T07:52:01.977 に答える
1

これは純粋な推測作業になりますが、サードパーティのライセンスソフトウェアがメモリ内の特定の場所にDLLをロードしようとしているようです。これらの障害のあるシステムでは、すでに他の何かによって占有されています。おそらくグローバルフックDLL。

于 2010-04-28T18:59:46.103 に答える
1

少しでも協力してくれる顧客がいる場合は、エラーメッセージが表示されているときに、クラッシュダンプ(たとえば、 ADPlusを使用するか、SysinternalsのProcDumpを使用する方が簡単)を取得する状況に光を当てる可能性があります。これにより、ロードされているモジュールと、場合によってはコールスタックが表示されます(問題の後に例外をキャッチしているモジュールではなく、エラー時にメッセージボックスからのものである場合)。

于 2010-04-28T17:59:21.367 に答える
0

また、「割り当てを設定できない」という問題も発生しました。王室の痛み。Javaを無効にしていたのですが、必要がないようだったので、プログラムの追加/削除を使用してシステムからJavaを削除しました。それから私はそれらのエラーを取得すると述べました。再インストールしましたが、IEエクスプローラーでJavaを無効にしました。これで、エラーは発生しなくなりました。プログラマーではありません。なぜこれが起こったのかわかりません。多分誰かのための手がかり。Win7-64ビットOSIEExplorer10。これが誰かがこれを理解するのに役立つことを願っています。ジョン

于 2013-03-22T22:18:46.977 に答える
0

私はこれが起こるのを見ました。私の場合、グローバルフックdllは、おそらくライセンスdllが期待していたメモリへの大容量メモリファイルマッピングを作成しました。

于 2014-06-06T13:56:00.623 に答える
0

グーグルクロームのみを開くと「割り当てを設定できません」と表示されます。また、その後、Chromeは「Chromeがクラッシュしました...」というメッセージで終了します。

まだ解決策はありません:(

于 2015-05-31T21:32:49.037 に答える
0

また、プログラマーではありませんが、Chromeを開くと常に発生します。「割り当てを設定できません」というエラーメッセージが表示された2番目のウィンドウが開きます。私は通常それを閉じて、私の道を進みます。そうしないと、通常はクラッシュが発生します。他のブラウザでは発生しません。

于 2015-10-26T13:17:21.863 に答える