应用程序见解:没有依赖性调用的数据

时间:2015-12-05 14:55:22

标签: asp.net azure azure-application-insights

Azure VM上托管的ASP.NET站点。 VM上安装的ApplicationInsights状态监视器。由"添加AppInsights"创建的默认ApplicationInsights.config;在Visual Studio中,只添加了自定义初始值设定项而不是ikey:

<Add Type="WebSite.WebSiteTelemetryInitializer, WebSite" />

代码:

public class WebSiteTelemetryInitializer : ITelemetryInitializer
    {
        public void Initialize(ITelemetry telemetry)
        {           
            TelemetryConfiguration.Active.InstrumentationKey = WebConfigurationManager.AppSettings["ikey"];

            telemetry.Context.User.Id = Environment.UserName;
            telemetry.Context.Session.Id = Guid.NewGuid().ToString();
            telemetry.Context.Component.Version = typeof(WebSiteTelemetryInitializer).Assembly.GetName().Version.ToString();
        }
    }

所有工作都按预期工作,但没有性能数据(Cpu,内存)。将apppool用户添加到Performance Monitor Users组后:

$group = [ADSI]"WinNT://$Env:ComputerName/Performance Monitor Users,group"
$ntAccount = New-Object System.Security.Principal.NTAccount("IIS APPPOOL\DefaultAppPool")
$strSID = $ntAccount.Translate([System.Security.Principal.SecurityIdentifier])
$user = [ADSI]"WinNT://$strSID"
$group.Add($user.Path)

没有依赖性调用的数据。

更新 有3个重复的跟踪日志:

  1. AI(内部):完成创建扩展的卷影副本, extensionBaseDirectory:C:\ inetpub \ wwwroot \ site \ bin,extensionName: Microsoft.ApplicationInsights.Extensions.Intercept,错误为System.UnauthorizedAccessException: Access to the path 'C:\Windows\system32\config\systemprofile' is denied.
  2. AI(内部):扩展附加失败,无法附加,baseFolder:C:\ inetpub \ wwwroot \ site \ bin,nativeExtensionName:Microsoft.ApplicationInsights.Extensions.Intercept
  3. AI(内部):[msg = RemoteDependencyModule failed]; [msg = System.InvalidOperationException:无法附加扩展名,hresult:2147500037

2 个答案:

答案 0 :(得分:1)

远程依赖:

好的,这就是阻止ApplicationInsights收集依赖项的原因: AI(内部):完成创建扩展的卷影副本,extensionBaseDirectory:C:\ inetpub \ wwwroot \ site \ bin,extensionName:带有错误的Microsoft.ApplicationInsights.Extensions.Intercept System.UnauthorizedAccessException:访问路径&#C; C: \的Windows \ system32 \设置\ systemprofile&#39;被拒绝。

C:\ Windows \ system32 \ config \ systemprofile是为进程设置的临时文件夹。您需要更改进程的临时文件夹,并确保您的应用程序可以在那里写入。 (ApplicationInsights正在处理分析器使用的本机二进制文件。当您遇到临时Internet访问问题时,也会使用Temp文件夹。它会保存未发送的事件,并在连接恢复时发送它们。)

效果指标:

为了收集性能计数器,运行应用程序池的用户(通常是它的ApplicationPoolIdentity)应该是该框上的Performance Monitor Users组的成员。确保将其添加到那里,并且在将用户添加到组后应该执行iisreset,否则更改将不会生效。

在底部描述: http://blogs.msdn.com/b/visualstudioalm/archive/2014/12/11/updated-application-insights-status-monitor-to-support-12-and-later-application-insights-sdk.aspx

答案 1 :(得分:1)

只需添加,您可以通过编辑applicationsinsights.config文件的结尾并添加临时文件夹的位置来更改Application Insights写入的临时文件夹。这就是我所做的:

<TelemetryChannel Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel, Microsoft.AI.ServerTelemetryChannel">
<StorageFolder>D:\AITempFolder</StorageFolder>

希望这也有助于其他人。