powershell - 如何在 Xrm 工具包中为 CrmServiceClient 启用日志记录?

标签 powershell dynamics-crm dynamics-crm-online

我在尝试使用来自自定义 powershell cmdlet 的连接字符串构造函数通过使用最新版本的 Xrm Tooling nuget 包登录到 CRM Online 组织时遇到问题。

我收到一条相当无用的“无法登录到 Dynamics CRM”错误消息,我正在尝试启用跟踪以进行故障排除,但无法通过修改 .dll.config 文件来启用它,如下所示 (taken from an XrmToolbox issue on GitHub):

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<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>
      <!--
            Possible values for switches: Off, Error, Warning, Info, Verbose
                Verbose:    includes Error, Warning, Info, Trace levels
                Info:       includes Error, Warning, Info levels
                Warning:    includes Error, Warning levels
                Error:      includes Error level
        -->
      <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" />
      <!--<add name="eventLogListener" type="System.Diagnostics.EventLogTraceListener" initializeData="XRMTooling" />-->
    </sharedListeners>
  </system.diagnostics>
</configuration>

最佳答案

我能够通过以下方式以编程方式配置监听器来解决此问题:

Microsoft.Xrm.Tooling.Connector.TraceControlSettings.TraceLevel = System.Diagnostics.SourceLevels.All;
Microsoft.Xrm.Tooling.Connector.TraceControlSettings.AddTraceListener(new TextWriterTraceListener("log.txt"));

这使我指出了实际错误,即 CrmServiceClient 期望使用组织唯一名称而不是 URL 名称的 URL。

关于powershell - 如何在 Xrm 工具包中为 CrmServiceClient 启用日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37913245/

相关文章:

powershell - 在PowerShell中使用换行符连接数组

powershell - 如何在范围结束时自动调用 Pop-Location

powershell - 没有标题的Powershell export-csv?

dynamics-crm - Dynamics CRM - 注销步骤、插件和程序集

dynamics-crm - 如何使用 JavaScript 将自定义 FetchXML 应用于子网格

dynamics-crm - MS Dynamics CRM 在线计算字段错误

powershell - 从 Powershell 使用 native CMD 命令时的编码问题

c# - CRM 2011 使用 ICodeWriterFilterService 生成的代码无法构建

c# - 从 CRM 4 和 2011 中的站点地图打开 ASPX 页面

css - 如何让网格看起来像 CRM 网格?