Azure 在Application Insights上记录D365脚本错误

Azure 在Application Insights上记录D365脚本错误,azure,dynamics-crm,azure-application-insights,telemetry,dynamics-365,Azure,Dynamics Crm,Azure Application Insights,Telemetry,Dynamics 365,我正在尝试使用应用程序洞察自动记录来自Dynamics 365实例的表单/脚本错误,但未对其进行跟踪 我首先在Azure中创建了一个Application Insights资源,并将以下JavaScript(从App Insights资源的入门部分提取)添加到我的CRM表单中(如下所示): 在此之后,我开始查看与页面视图和页面加载时间相关的数据,以便启用跟踪: 我的下一个操作是强制表单中的一些脚本错误在Azure中可视化。为了做到这一点,我在字段的OnChange事件中添加了一个JavaScr

我正在尝试使用应用程序洞察自动记录来自Dynamics 365实例的表单/脚本错误,但未对其进行跟踪

我首先在Azure中创建了一个Application Insights资源,并将以下JavaScript(从App Insights资源的入门部分提取)添加到我的CRM表单中(如下所示):

在此之后,我开始查看与页面视图和页面加载时间相关的数据,以便启用跟踪:

我的下一个操作是强制表单中的一些脚本错误在Azure中可视化。为了做到这一点,我在字段的OnChange事件中添加了一个JavaScript函数,以获得一个“未定义”错误:

正如您在前一幅图中所看到的,错误正如预期的那样在D365中抛出,但在Application Insights中没有它的记录。在一些测试之后,我开始怀疑CRM正在捕获该错误,并且没有让它到达浏览器(该错误没有出现在控制台中)。为了证实我的怀疑,我使用相同的App Insights配置创建了一个HTML网页,并模拟了错误,以查看在该场景中是否正在跟踪错误,答案是肯定的:

因此,动力学似乎正在“吞咽”错误并阻止其被记录。以前有人遇到过这个问题吗?是否有一种变通方法可用于成功地将错误跟踪到App Insights中


谢谢

Dynamics CRM将以特殊方式处理自定义脚本块

我们必须在表单js中优雅地捕捉异常,并将其记录在AI中,如下所示

试试看
{
...
}
捕获(ex)
{
appInsights.trackException(ex);
}


Ref:

Dynamics CRM将以特殊方式处理自定义脚本块

我们必须在表单js中优雅地捕捉异常,并将其记录在AI中,如下所示

试试看
{
...
}
捕获(ex)
{
appInsights.trackException(ex);
}


Ref:

很高兴看到我的演练帮助了社区。。您是否尝试过{…}catch(ex){appInsights.trackException(ex);}很高兴看到我的演练帮助了社区。。您是否尝试过{…}catch(ex){appInsights.trackException(ex);}谢谢Arun,我知道trackException函数,但我想避免使用这种方法,主要是因为CRM实例有200多个JavaScript web资源,并对所有资源进行重构以包含这些资源会很痛苦。使用App Insights记录脚本错误的主要原因之一是,它可以避免重构大量代码(只需在表单中添加web资源即可),但不幸的是,在CRM环境中,它被证明是很棘手的…感谢Arun,我知道trackException函数,但我想避免使用这种方法,主要是因为CRM实例有200多个JavaScript web资源,并且重构所有这些资源以包含这些资源将非常痛苦。使用App Insights记录脚本错误的一个主要原因是,它可以避免重构大量代码(只需在表单中添加web资源即可),但不幸的是,在CRM环境中,它被证明是很棘手的。。。
var appInsights=window.appInsights||function(config){
function i(config) { t[config] = function () { var i = arguments; t.queue.push(function () { t[config].apply(t, i) }) } }var t={config:config},u=document,e=window,o="script",s="AuthenticatedUserContext",h="start",c="stop",l="Track",a=l+"Event",v=l+"Page",y=u.createElement(o),r,f;y.src=config.url||"https://az416426.vo.msecnd.net/scripts/a/ai.0.js";u.getElementsByTagName(o)[0].parentNode.appendChild(y);try{t.cookie = u.cookie}catch(p){}for(t.queue=[],t.version="1.0",r=["Event","Exception","Metric","PageView","Trace","Dependency"];r.length;)i("track"+r.pop());return i("set"+s),i("clear"+s),i(h+a),i(c+a),i(h+v),i(c+v),i("flush"),config.disableExceptionTracking||(r="onerror",i("_"+r),f=e[r],e[r]=function(config,i,u,e,o){var s=f&&f(config,i,u,e,o);return s!==!0&&t["_"+r](config,i,u,e,o),s}),t
    }({
            instrumentationKey:"XXXXX"
    });

    window.appInsights=appInsights;
    appInsights.trackPageView();