Aracılığıyla paylaş


HTTP 500 İç Hizmet Hatalarını Giderme

ŞUNLAR IÇIN GEÇERLIDIR: SDK v4

500 hatalarını gidermenin ilk adımı, Uygulama Analizler'ni etkinleştirmektir.

Uygulama Analizler örnekleri için luis-with-appinsights C# örneği ve JS örneğine bakın.

Dekont

Language Understanding (LUIS) 1 Ekim 2025'te kullanımdan kaldırılacaktır. 1 Nisan 2023'e kadar yeni LUIS kaynakları oluşturamayacaksınız. Dil anlamanın daha yeni bir sürümü artık Azure AI Dili'nin bir parçası olarak kullanılabilir.

Azure AI Dili'nin bir özelliği olan konuşma dili anlama (CLU), LUIS'in güncelleştirilmiş sürümüdür. Bot Framework SDK'sında dil anlama desteği hakkında daha fazla bilgi için bkz . Doğal dil anlama.

Mevcut bota Uygulama Analizler ekleme hakkında bilgi için konuşma analizi telemetrisine bakın.

ASP.NET için Uygulama Analizler etkinleştirme

Temel Uygulama Analizler desteği için bkz. ASP.NET web siteniz için Uygulama Analizler ayarlama. Bot Framework (v4.2 ile başlayarak) ek bir Uygulama Analizler telemetri düzeyi sağlar, ancak HTTP 500 hatalarını tanılamak için gerekli değildir.

Node.js için Uygulama Analizler Etkinleştirme

Temel Uygulama Analizler desteği için Bkz. Application Analizler ile Node.js hizmetlerinizi ve uygulamalarınızı izleme. Bot Framework (v4.2 ile başlayarak) ek bir Uygulama Analizler telemetri düzeyi sağlar, ancak HTTP 500 hatalarını tanılamak için gerekli değildir.

Özel durumlar için sorgu

HTTP durum kodu 500 hatalarını çözümlemenin en kolay yöntemi özel durumlarla başlamaktır.

Aşağıdaki sorgular size en son özel durumları bildirir:

exceptions
| order by timestamp desc
| project timestamp, operation_Id, appName

İlk sorguda işlem kimliklerinden birkaçını seçin ve daha fazla bilgi arayın:

let my_operation_id = "d298f1385197fd438b520e617d58f4fb";
let union_all = () {
    union
    (traces | where operation_Id == my_operation_id),
    (customEvents | where operation_Id == my_operation_id),
    (requests | where operation_Id == my_operation_id),
    (dependencies | where operation_Id  == my_operation_id),
    (exceptions | where operation_Id == my_operation_id)
};

union_all
    | order by timestamp desc

Yalnızca varsa exceptions, ayrıntıları analiz edin ve kodunuzdaki satırlara karşılık gelip gelmediklerine bakın. Yalnızca Channel Bağlan or ()Microsoft.Bot.ChannelConnector öğesinden gelen özel durumları görüyorsanız, Application Analizler'ın doğru ayarlandığından ve kodunuzun olayları günlüğe kaydeddiğinden emin olmak için Bkz. Uygulama yok Analizler olayları.

Uygulama Analizler olayı yok

500 hata alıyorsanız ve botunuzdan Application Analizler içinde başka olay yoksa aşağıdakileri denetleyin:

Botunun yerel olarak çalıştığından emin olun

İlk olarak Bot Framework Öykünücüsü ile botunuzu yerel olarak test edin.

Yapılandırma dosyalarının kopyalandığından emin olun (yalnızca.NET)

Dağıtım işlemi sırasında sizin appsettings.json ve diğer yapılandırma dosyalarının doğru paketlenmiş olduğundan emin olun.

Uygulama derlemeleri

Dağıtım işlemi sırasında Uygulama Analizler derlemelerinin doğru paketlenmiş olduğundan emin olun.

  • Microsoft.Application Analizler
  • Microsoft.Application Analizler. TraceListener
  • Microsoft.AI.Web
  • Microsoft.AI.WebServer
  • Microsoft.AI.ServeTelemetryChannel
  • Microsoft.AI.PerfCounterCollector
  • Microsoft.AI.DependencyCollector
  • Microsoft.AI.Agent.Intercept

Dağıtım işlemi sırasında sizin appsettings.json ve diğer yapılandırma dosyalarının doğru paketlenmiş olduğundan emin olun.

appsettings.json

Dosyanızın appsettings.json içinde İzleme Anahtarı'nın ayarlandığından emin olun.

{
    "Logging": {
        "IncludeScopes": false,
        "LogLevel": {
            "Default": "Debug",
            "System": "Information",
            "Microsoft": "Information"
        },
        "Console": {
            "IncludeScopes": "true"
        }
    }
}

Yapılandırma dosyasını doğrulama

Yapılandırma dosyanıza bir Uygulama Analizler anahtarı eklendiğinden emin olun.

{
    "ApplicationInsights": {
        "type": "appInsights",
        "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "resourceGroup": "my resource group",
        "name": "my appinsights name",
        "serviceName": "my service name",
        "instrumentationKey": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "apiKeys": {},
        "id": ""
    }
},

Günlükleri denetleme

Bot ASP.NET ve Node, günlükleri incelenebilen sunucu düzeyinde yayar.

Günlüklerinizi izlemek için bir tarayıcı ayarlama

  1. Botunuzu Azure portalında açın.
  2. Tüm hizmet ayarlarını görmek için App Service Ayarlar / Tüm App service ayarları sayfasını açın.
  3. Uygulama hizmeti için İzleme / Tanılama Günlükleri sayfasını açın.
    • Uygulama Günlüğü'nin (Dosya Sistemi) etkinleştirildiğinden emin olun. Bu ayarı değiştirirseniz Kaydet'e tıkladığınızdan emin olun.
  4. İzleme / Günlük Akışı sayfasına geçin.
    • Web sunucusu günlükleri'ne tıklayın ve bağlandığınıza dair bir ileti gördüğünüzden emin olun. Aşağıdakine benzer olmalıdır:

      Connecting...
      2018-11-14T17:24:51  Welcome, you are now connected to log-streaming service.
      

      Bu pencereyi açık tutun.

Bot hizmetinizi yeniden başlatmak için tarayıcıyı ayarlama

  1. Ayrı bir tarayıcı kullanarak botunuzu Azure portalında açın.
  2. Tüm hizmet ayarlarını görmek için App Service Ayarlar / Tüm App service ayarları sayfasını açın.
  3. Uygulama hizmetinin Genel Bakış sayfasına geçin ve Yeniden Başlat'a tıklayın.
    • Emin olup olmadığınız sorulur; evet'i seçin.
  4. İlk tarayıcı penceresine dönün ve günlükleri izleyin.
  5. Yeni günlükler aldığınızı doğrulayın.
    • Etkinlik yoksa botunuzu yeniden dağıtabilirsiniz.
    • Ardından Uygulama günlükleri sayfasına geçin ve hataları arayın.

Sonraki adımlar