2011-12-15 39 views
3

我們剛剛從Microsoft Dynamics CRM 4升級到Microsoft Dynamics CRM 2011.大多數升級都已順利進行,但是我有一些自定義代碼(已編寫對於CRM 4),它是作爲CRM 4 ISV文件夾中的ASPX頁面實現的。自升級以來,此代碼已停止工作。連接到CRM 2011中的mscrmservices/2007/CrmService.asmx端點IFD/ADFS

我們的Dynamics CRM 2011服務器作爲IFD部署在本地設置。

代碼連接到CRM服務器如下:

using (new CrmImpersonator()) 
     { 
      string crmurl = "https://<server>:444/<org>/mscrmservices/2007/CrmService.asmx"; 
      string orgname = <org>; 

      CrmAuthenticationToken token = CrmAuthenticationToken.ExtractCrmAuthenticationToken(context, orgname); 
      token.OrganizationName = orgname; 

      token.AuthenticationType = 0; 

      CrmService service = new CrmService(); 
      service.Credentials = System.Net.CredentialCache.DefaultCredentials; 
      service.CrmAuthenticationTokenValue = token; 
      service.Url = crmurl; 

      WhoAmIRequest who = new WhoAmIRequest(); 
      WhoAmIResponse whoResponse = (WhoAmIResponse)service.Execute(who); 

在發送我收到以下異常的WhoAmIRequest:

The request failed with the error message: 
-- 
<html><head><title>Object moved</title></head><body> 
<h2>Object moved to <a href="https://<server>:444/<org>/mscrmservices/2007/CrmService.asmx">here</a>.</h2> 
</body></html> 

--. 

at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) 
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) 
at Microsoft.Crm.SdkTypeProxy.CrmService.Execute(Request Request) 
at ForecastConverterWeb.CashflowForecast.ToCrm(HttpContext context) 
at ForecastConverterWeb._Default.submitbtn_click(Object sender, EventArgs e) 

看來,當代碼試圖將請求發送到https://:444 // mscrmservices/2007/CrmService.asmx該頁面會返回一個鏈接重定向到,well ...本身(https://:444 // mscrmservices/2007/CrmService.asmx)。

我一直使用內部地址(端口5555),外部IFD地址試圖(HTTPS通過端口444)和內部IFD(HTTPS通過端口444)處理所有具有相同的結果。我知道,在2011年CRM ISV正在貶值,但時間的考慮量則需重新開發這個軟件(而事實上,考慮到它支持的代碼,我應該沒有)我寧願只得到這工作,因爲它應該(根據這個:http://msdn.microsoft.com/en-us/library/gg309571.aspx

我非常感謝任何人都可以提供幫助。

回答

3

您的代碼使您看起來像將組織名稱放在主機和/2007/crmservice.asmx的路徑之間。不要這樣做。我知道你必須在ISV目錄中的自定義aspx/asmx文件的前提下預先給定組織名稱,但據我所知,它不適用於crmservice.asmx。

+0

我改變了URL爲`的https:// :444/mscrmservices/2007/CrmService.asmx`,現在我收到以下異常: `請求,HTTP狀態401失敗:未經授權。 at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message,WebResponse response,Stream responseStream,Boolean asyncCall)` – jacobappleton 2011-12-15 23:14:42

相關問題