最後のDynamics SDKのキャッシュ動作が私を狂わせてしまいます。Microsoft Dynamics CRM SDK CRMServiceClient接続文字列キャッシュのバグ
まず、CrmServiceClientを使用して異なる環境にアクセスする場合は、パラメータ「RequireNewInstance = True;」を使用する必要があります。接続文字列にそうでない場合、CrmServiceClientのすべてのインスタンスは、インスタンスを作成して別の環境に配置した場合でも、同じ接続を使用します。
ここで、「RequireNewInstance = True;」を使用しても、接続文字列で、キャッシュがまだいくつかのシナリオで発生していることがわかりました。
var client1 = new CrmServiceClient(“RequireNewInstance=True; Url= https://myCompany.crm.dynamics.com ; [email protected]; Password=myPassowrd; AuthType=Office365”);
//Now, client 2 points to a url that doesn’t exists: var client2 = new CrmServiceClient("RequireNewInstance=True; Url= https://xxx.crm.dynamics.com ; [email protected]; Password=myPassowrd; AuthType=Office365”);
クライアント2は、新たな接続文字列が正しいかどうかを判断することはできませんので、最初の接続文字列を使用して保持します。
私のasp.netアプリケーションでDynamics Crm接続文字列を正しくテストする方法はありますか?
マットにお返事ありがとうございます。まったく同じ接続文字列を使用してみてください。実際のURLから偽のURLに変更してください。つまり、crmSvcClientで使用されるユーザーとパスワードを保持します。あなたは私が経験している行動を得なければなりません – Marcos
@Marcos hmmm ...それは私がやったことです。最初の接続は正しいですが、2番目の接続には正しいユーザー資格情報がありますが、偽の組織名があります。 –
私は別のクライアントで、x64とx86を使用してみました。まったく同じ接続文字列構造をたどっていても、完全に間違った動作をします。私はネットフィドルにいくつかの作業サンプルを入れようとしましたが、パッケージの依存関係の問題のためにできませんでした。したがって、URLの違い(例:http://xxx.crm.dynamics.com)だけで、同じ接続文字列があり、最初のCrmServiceClientが接続され、2番目の接続文字列は接続されません。 – Marcos