2

我使用的簡化連接從MicrosoftDocument.XML.Tooling.Connector.dll示例可以在SDK中找到SDK \ SampleCode \ CS \ QuickStart \ SimplifiedConnection.csD365簡化連接Azure應用服務

問題是,當站點部署到Azure應用服務(以前的網站)時它不起作用,而它在本地正常運行站點時工作正常。

例外情況是非常普遍的:

Object reference not set to an instance of an object

任何你所看到的這個或知道問題/解決?

CrmServiceClient crmConn = new CrmServiceClient(ConfigurationManager.ConnectionStrings["CRM"].ConnectionString); 
IOrganizationService crmService = crmConn.OrganizationServiceProxy; 
<connectionStrings> 
<add name="CRM" connectionString="AuthType=Office365;Url=https://instance.crm4.dynamics.com; [email protected]; Password=Lu555" /> 

編輯在議決 添加以下web.config中Source

<system.diagnostics> 
<trace autoflush="true" /> 
<sources> 
<source name="Microsoft.Xrm.Tooling.Connector.CrmServiceClient" 
switchName="Microsoft.Xrm.Tooling.Connector.CrmServiceClient" 
switchType="System.Diagnostics.SourceSwitch"> 
<listeners> 
<add name="console" type="System.Diagnostics.DefaultTraceListener" /> 
<remove name="Default" /> 
<add name ="fileListener" /> 
</listeners> 
</source> 
<source name="Microsoft.Xrm.Tooling.CrmConnectControl" 
switchName="Microsoft.Xrm.Tooling.CrmConnectControl" 
switchType="System.Diagnostics.SourceSwitch"> 
<listeners> 
<add name="console" type="System.Diagnostics.DefaultTraceListener" /> 
<remove name="Default" /> 
<add name ="fileListener" /> 
</listeners> 
</source> 
</sources> 
<switches> 
    <add name="Microsoft.Xrm.Tooling.Connector.CrmServiceClient" value="Verbose" /> 
<add name="Microsoft.Xrm.Tooling.CrmConnectControl" value="Verbose" /> 
<add name="Microsoft.Xrm.Tooling.WebResourceUtility" value="Verbose" /> 
</switches> 
<sharedListeners> 
<add name="fileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="XRMToolingLogs.log" /> 
</sharedListeners> 
</system.diagnostics> 
+1

僅供參考,'CrmServiceClient'實現'IOrganizationService'這樣你就可以在大多數情況下直接使用它,除非你特別需要OrganizationServiceProxy出於某種原因。 – Aron

+1

您可以將堆棧跟蹤添加到您的問題嗎? –

+0

也許你使用自己的ADFS進行身份驗證,而這通過Internet不可用?在這種情況下,這可以在本地工作(因爲ADFS位於您的內部網絡中),但是您的應用服務將無法登錄(因爲它無法訪問ADFS服務器) –

回答

0

從上面的聽衆,我得到了以下錯誤

Could not load file or assembly 'Microsoft.Xrm.Sdk, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference

是什麼讓我覺得NuGet包存在一個問題,因爲我已經通過Visual Studio中的管理NuGet包進行了全部安裝。

我已經解決了在web.config中添加這個錯誤。在此之後,我的網站在Azure網站上與D365相連。

<dependentAssembly> 
    <assemblyIdentity name="Microsoft.Xrm.Sdk" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" /> 
    </dependentAssembly> 
0

最有可能存在監聽器是與連接的問題。不知道,讀取連接字符串可能會造成問題 - 仔細檢查您在本地web.config中具有完全相同的字符串,就像您在Azure應用服務的連接字符串配置UI中輸入的一樣。

嘗試修改你的代碼拋出一個異常ID的連接是沒有準備好,這樣就可以得到基本的CRM錯誤:

CrmServiceClient crmConn = new CrmServiceClient(ConfigurationManager.ConnectionStrings["CRM"].ConnectionString); 
if (!crmConn.IsReady) 
{ 
    throw new Exception($"Crm Connection Not Ready. Last error: {crmConn.LastCrmError}"); 
} 
IOrganizationService crmService = crmConn.OrganizationServiceProxy; 
+0

謝謝,使用此代碼我得到錯誤:Unable to Login to Dynamics CRM,它使我找到了上面的聽衆網絡,從中我得到了實際的錯誤。 – Jorge