从应用程序服务计划中删除appinsights探查器

u4vypkhs  于 2021-06-24  发布在  Kudu
关注(0)|答案(2)|浏览(501)

我目前正在试用新的测试版asp.net核心应用程序洞察探查器。
但是,我看到错误消息:
2019-02-11t11:36:22 pid[6036]信息02-11 11:36:22错误:代理主进程中出现意外异常。详细信息:microsoft.serviceprofiler.utilities.appidnotfoundexception:找不到ikey的appid
在诊断日志中。
在github上提问https://github.com/microsoft/applicationinsights-profiler-aspnetcore/issues/36,我被善意地告知,这可能是由于旧的探查器变得活跃,并给出了一些关于如何禁用它的提示。
不幸的是,将appinsights\u profilerfeature\u version设置为disabled对我不起作用(尽管可能是由于我的特定arm模板设置)。
相反,通过kudu禁用是帮助我的原因(因为我需要将其作为发布管道的一部分):

0ve6wy6x

0ve6wy6x1#

applicationinsightsprofiler2 Web作业由旧的application insights站点扩展安装。要正确删除它,您需要从应用程序服务页面内的“扩展”刀片中删除applicationinsights扩展。
如果这不起作用(你看不到applicationinsights扩展),卸载可能会以静默方式失败,但位仍然存在,因此你必须按照下面的步骤手动删除它。
github注解是指安装名为“applicationinsightsprofiler3”的web作业的新启用流(来自app服务页内的“application insights”blade)。如果您只有此web作业,从application insights ui将其关闭将起作用-您不需要手动设置应用程序设置。

u59ebvdq

u59ebvdq2#

在深入研究kudu wiki并用更新的技术替换一些元素之后,我使用了下面的powershell。
它使用从站点获取的发布凭证组成一个“http基本身份验证”字符串,然后使用该字符串向kuduapi发出删除请求。
值得注意的是,如果您使用的是powershell 6,则不需要编写基本的身份验证字符串,因为powershell 6的invoke rest方法可以为您完成这项工作。

function Get-KuduSiteBasicAuthString
{
    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true)]
        $ResourceGroupName,

        [Parameter(Mandatory = $true)]
        $Name
    )

    $response = Get-AzureRmWebAppPublishingProfile -ResourceGroupName $ResourceGroupName -Name $Name

    $publishingCredentials = [xml]$response

    $username = $publishingCredentials.publishData.publishProfile[0].userName
    $password = $publishingCredentials.publishData.publishProfile[0].userPWD

    $credentialsString = "{0}:{1}" -f $username, $password

    $credentialsAsByteArray = [Text.Encoding]::ASCII.GetBytes($credentialsString)

    "Basic {0}" -f [Convert]::ToBase64String($credentialsAsByteArray)
}

$ResourceGroupName = "your resource group name"
$ApplicationName = "your app name"

$kuduAuthString = Get-KuduSiteBasicAuthString -ResourceGroupName $ResourceGroupName -Name $ApplicationName

$apiUrl = "https://" + $ApplicationName + ".scm.azurewebsites.net/api/continuouswebjobs/ApplicationInsightsProfiler2"
Invoke-RestMethod -Uri $apiUrl -Headers @{ 'Authorization' = $kuduAuthString } -Method Delete -Verbose

相关问题