D365 简化连接 Azure App Services
D365 simplified connection Azure App Services
我正在使用从 Microsoft.Xrm.Tooling.Connector.dll 到 D365 的简化连接 可以在 SDK SDK\SampleCode\CS\QuickStart\SimplifiedConnection.cs 中找到示例
问题是,当站点部署到 Azure 应用服务(以前的网站)时它不起作用,而它在本地工作正常 运行 站点。
例外情况非常普遍:
Object reference not set to an instance of an object
你们中有人看过或知道 issue/resolution 吗?
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; Username=name.name@domain.onmicrosoft.com; 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>
很可能是连接有问题。不确定,这可能是读取连接字符串的问题 - 仔细检查本地 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;
从上面的侦听器,我得到以下错误
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>
我正在使用从 Microsoft.Xrm.Tooling.Connector.dll 到 D365 的简化连接 可以在 SDK SDK\SampleCode\CS\QuickStart\SimplifiedConnection.cs 中找到示例
问题是,当站点部署到 Azure 应用服务(以前的网站)时它不起作用,而它在本地工作正常 运行 站点。
例外情况非常普遍:
Object reference not set to an instance of an object
你们中有人看过或知道 issue/resolution 吗?
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; Username=name.name@domain.onmicrosoft.com; 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>
很可能是连接有问题。不确定,这可能是读取连接字符串的问题 - 仔细检查本地 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;
从上面的侦听器,我得到以下错误
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>