我正在使用 Microsoft.Xrm.Tooling.Connector.dll 中与D365的简化连接示例可以在SDK SDK \ SampleCode \ CS \ QuickStart \ SimplifiedConnection中找到。 CS 的
问题是,当站点部署到Azure应用服务(以前的网站)时它不起作用,而它可以在本地运行网站。
例外是非常笼统的:
未将对象引用设置为对象的实例
你们有没有看过这个或知道问题/决议?
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>
答案 0 :(得分: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;
答案 1 :(得分:0)
从上面的听众那里,我得到了以下错误
无法加载文件或程序集“Microsoft.Xrm.Sdk,Version = 7.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”或其依赖项之一。定位的程序集的清单定义与程序集引用
不匹配
是什么让我觉得NuGet包存在问题,因为我已经通过Visual Studio中的Manage 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>