アプリの起動時に表示される説明のないエラーメッセージ「割り当てを設定できません」について、お客様からの不定期の報告に数年間悩まされてきました。これまで、独自のテスト環境で問題を再現することはできませんでした。私は今、これを追跡しようとするためのアイデアを使い果たしました。これは、時間の経過とともに蓄積された観測のコレクションです。
- エラーメッセージテキストには、「割り当てを設定できません」と表示されます(句読点がないことに注意してください)。
- ウィンドウのタイトルは単に「エラー」(またはローカライズされた同等のもの)と表示されます。
- 「割り当てを設定できません」というテキストは、OSのロケールに関係なく、常に英語で表示されます。
これまでのところ、メッセージテキストを含むDLLまたはEXEを見つけることができませんでした。
Googleは、さまざまな製品に関するこのエラーの報告でいっぱいですが、解決策はありません。
私がこれまでに理解できた影響を受けた製品間の唯一の統一的な側面は、それらがすべてサードパーティのプロセス(VisualStudioやWindowsExplorerシェル拡張機能のアドインなど)に読み込まれるDLLの形式で提供されているように見えることでした。
私たちのアプリは、実際にはDelphiで記述されたMS Outlook用のシェアウェアCOMアドインです(つまり、ネイティブコード-.NETなし)。
私たちの場合の主な容疑者は、DLLをその場で復号化してメモリに解凍する、使用しているサードパーティのライセンスラッパーです。明らかに、この疑いを確認するために、影響を受けた顧客に保護されていないバージョンのアプリを提供することはできませんでした。おそらく、これが報告されている他のベンダーが同様の製品を使用しています。
ライセンスベンダーから提供された保護ラッパーのデバッグバージョンでは、結果は得られませんでした。ログファイルは、エラーが発生しなかったセッションのログファイルとまったく同じように見えました。どうやら「内部」DLLは正常に復号化および解凍されますが、何らかの理由でホストプロセスによるロードに失敗します。
保護されていない「ローダー」DLLを作成することにより、
LoadLibrary
DLLをメモリにロードすることになっている呼び出しの背後のどこかでエラーの発生を特定することができました。独自のコード(保護されていないローダーと保護された「コア」-DLLの両方)での広範なロギングとグローバル例外フックは、まったく結果をもたらしませんでした。エラーは明らかにどこか別の場所で発生します。
私のこの以前の質問で説明された問題は、おそらく同じ問題によって引き起こされました。これは、保護されていないローダースタブを作成する前のことです。
エラーはお客様の約1〜2%でのみ発生しますが、通常、影響を受けるお客様のサイトのすべてのインストールは同じように影響を受けます。
- 新しいバージョンをリリースした後にエラーが消えることがありますが、多くの場合、数週間または数か月後に再びエラーが発生します。
- マシンでエラーが発生し始めると、それは一貫して発生します。
リモートアクセス(VNC、RDP、TeamViewerなど)を介して影響を受けるマシンに接続している間はエラーが発生することはなく、影響を受ける顧客は誰も私たちから移動距離内にいないため、ログファイルと「目-目撃者の報告」。
ある顧客は、エラーメッセージダイアログが明らかに非モーダルであると報告しました。つまり、ダイアログボックスを横に移動して、アプリケーションでの作業を続行できました(DLLが提供する機能を除く)。これが他のすべての出来事にも普遍的に当てはまるかどうかはわかりません。
場合によっては、お客様は、ホストアプリケーションを自社製品と共有していた他のベンダーの他のアドインを無効にするかアンインストールすることで、エラーを完全に取り除くことができました。
このエラーは、これまでのところWindows XP、Vista、および7で確認されています。
過去数週間の間に、Outlook 2003 /Windows7ユーザーからのレポートが急増しました。最近のWindows/Officeの更新によって状況が悪化した可能性はありますか?
誰かがこのエラーの経験がありますか?
または、これを調査するためのアイデアは他にありますか?