0

異なるドメインの異なるボックスで動作するプラグインがあります。ただし、該当するエンティティ イベントがトリガーされるたびにこのエラーをスローし続ける特定のボックスに登録しています。警告?コードは実行されていません。IE: IPlugin.Execute() インターフェイスの実装に到達することはありません「無効な URI: ホスト名を解析できませんでした」という CRM ダイアログが表示されます。毎回。

該当する CRM プロセスに Visual Studio をアタッチしたため、コードが入力されていないことを確認しました。他のボックスでは、問題なくステップインして通過できます。これが、コードに到達していないと判断した方法です。

プラグインは、他のマシンと同じように CRM に登録されています。特定のソリューション ファイルの下に配置して公開しました (その手順は必要ありませんが)。

考え?

4

1 に答える 1

1

私はそれを考え出した。また、それを理解したら、それは本質的にばかげていると思いました。

概要:古い非推奨のプラグインを登録解除します。

詳細:

これは、以前に開発されたプラグイン (別のコードベース) を書き直したもので、どちらもサードパーティの Web 呼び出しのラッパーです。問題のサードパーティは、昔ながらの SOAP エンドポイントを REST/JSON 呼び出しにリファクタリングしました。SOAP 呼び出しは、2013 年 1 月 15 日に正式にオフラインになりました。そして...待ってください...古いプラグインがまだ登録されていました。

上記のエラーは、SOAP エンドポイントが正式に廃止された後、古いプラグインによってスローされていました。

複雑な問題?同じ Entity.Event の組み合わせに接続された 2 つの IPlugin.Execute() インターフェイスがあったため、コードにステップ インしてデバッグすることができませんでした。古いプラグインが登録解除されたので、期待どおりすぐに介入します。

ケーキのフロスティング?これら 2 つの Execute() メソッドの実行は、完全に非決定的であるように見えました。IE: 新しいコードが (ある程度) 実行されることもあれば、実行されないこともあります。したがって、両方の Execute() メソッドが同時に実行されていたか、または一方が他方よりも前に呼び出されたり、その逆の場合がありました。

私はすぐにこれを忘れません。上でコメントしてくださった皆様、ありがとうございます。実際に空のプラグインの新規作成を試みましたが、明らかに同じ結果になりました。うまくいけば、これはいつか誰かを助けるでしょう。

于 2013-01-25T17:15:31.883 に答える