我有一個Silverlight應用程序嵌入到Dynamics CRM中的IFRAME中...加載表單後調用通過CRM服務soap客戶端檢索數據。客戶端以編程方式初始化,並注入到標頭中的URL和CRM身份驗證令牌。當我在Silverlight中添加線程時,CRM會提示輸入憑據
所有這一切,本身,完美地工作。
當我添加「加載...」動畫時出現問題。要正確顯示動畫,我已經整理了服務請求到後臺線程,基本取代...
QuestionContext.RetrieveOptions();
...與...
ThreadPool.QueueUserWorkItem(delegate {
QuestionContext.RetrieveOptions();
});
我這樣做的那一刻,不過,我(有點零星)得到一個憑證提示。取消提示會導致Web服務出現「未找到」錯誤。
我已將clientaccesspolicy.xml放入CRMWeb根目錄,我的ISV站點根目錄以及我的.xap所在的ClientBin文件夾中......它們都沒有什麼不同。
UPDATE:在提示符下提供有效的憑據沒有任何作用,提示符重新出現3次,然後我們回到「未找到」錯誤。
更新:我已經用一些錯誤檢查來包裝服務調用響應,每次在「未找到」錯誤時只需重新發出請求。現在,只要顯示憑據提示符時按取消最終會導致滿意的請求。也就是說,它並不總是失敗,並且重複發佈請求未指定的次數最終導致成功。
我也在我的Execute()調用soap客戶端之前添加了一個Thread.Sleep()以努力查看調用是否以某種方式干擾彼此,但它似乎沒有做出區別。
是的,客戶端具有線程關聯。我相信這是Silverlight 4中的一個限制。 – PjL 2011-03-04 04:55:28