托管在Azure VM上的ASP.NET站点。 VM上安装的ApplicationInsights状态监视器。由Visual Studio中的“添加AppInsights”菜单创建的默认ApplicationInsights.config,仅添加了自定义初始化程序,而不是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个重复的跟踪日志:


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.
AI(内部):扩展附加失败,无法附加,baseFolder:C:\ inetpub \ wwwroot \ site \ bin,nativeExtensionName:Microsoft.ApplicationInsights.Extensions.Intercept
AI(内部):[msg = RemoteDependencyModule失败]; [msg = System.InvalidOperationException:无法附加扩展,结果:2147500037

最佳答案

远程依赖项:

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

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

性能计数器:

为了收集性能计数器,在其上运行应用程序池的用户(通常是ApplicationPoolIdentity)应为“性能监视器用户”组的成员。确保已将其添加到该位置,并且应在将用户添加到该组之后执行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

关于asp.net - 应用洞察力:没有用于依赖项调用的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34106876/

10-10 22:19