Azure AI Bot Hizmeti botları için genel sorun giderme
ŞUNLAR IÇIN GEÇERLIDIR: SDK v4
Bu sık sorulan sorular sık karşılaşılan bot geliştirme veya işletim sorunlarını gidermenize yardımcı olabilir.
Botumla ilgili sorunları nasıl giderebilirim?
- Visual Studio Code veya Visual Studio ile botunuzun kaynak kodunda hata ayıklama.
- Botunuzu buluta dağıtmadan önce Bot Framework Öykünücüsü'ni kullanarak test edin.
- Botunuzu Azure gibi bir bulut barındırma platformuna dağıtın ve ardından Azure portalındaki botunuzun panosundaki yerleşik web sohbeti denetimini kullanarak botunuza bağlantıyı test edin. Botunuzu Azure'a dağıttığınızda sorunlarla karşılaşırsanız şu blog makalesini kullanmayı düşünebilirsiniz: Azure sorunlarını giderme ve desteği anlama.
- Kimlik doğrulamayı olası bir sorun olarak ele.
- Botunuzu Web Sohbeti, Teams veya botunuzla kullanmayı planladığınız başka bir kanalda test edin. Bu, uçtan uca kullanıcı deneyimini doğrulamanıza yardımcı olur.
- Doğrudan Hat veya Web Sohbeti gibi ek kimlik doğrulama gereksinimleri olan kanallarda botunuzu test etmeyi göz önünde bulundurun.
- Bir botta hata ayıklama ve bu bölümdeki diğer hata ayıklama makalelerini gözden geçirin.
Kimlik doğrulama sorunlarını nasıl giderebilirim?
Botunuzla ilgili kimlik doğrulama sorunlarını giderme hakkında ayrıntılı bilgi için bkz . Bot Framework kimlik doğrulaması sorunlarını giderme .
Botlarla kanal arasındaki ağ bağlantısını test Nasıl yaparım??
Aşağıdaki adımlar tarafından oluşturulan IP adreslerini kullanarak bu adreslerle bağlantıyı engelleyen bir kural olup olmadığını doğrulayabilirsiniz. Başarısız bağlantılarda güvenlik duvarı izlemelerini denetleme bölümüne bakın.
Bottan kanala bağlantıyı test etme
Tarayıcınızda Azure portala gidin.
Bağlantısını test etmek istediğiniz bot App Service'inizi seçin.
Sol bölmedeki Geliştirme Araçları bölümünde Gelişmiş Araçlar'ı seçin.
Sağ bölmede Git'i seçin. Kudu bilgileri sayfası görüntülenir.
Üst menü çubuğunda Hata ayıklama konsolu'nu seçin. Ardından, açılan menüdeN CMD'yi seçin. Kudu bot web uygulaması konsolu açılır. Daha fazla bilgi için bkz . Kudu.
komutunu çalıştırın
nslookup directline.botframework.com
ve DNS çözümlemesinin çalışıp çalışmadiğini denetleyin.nslookup
Etki alanı adı veya IP adresi eşlemesi veya diğer DNS kayıtlarını almak için Etki Alanı Adı Sistemi'ni (DNS) sorgulamaya yönelik bir ağ yönetimi komut satırı aracı olduğuna dikkat edin. DNS çözümlemesi çalışıyorsa, bu komuta verilen yanıt ilgili bilgileri içerir.WHOIS IP Arama Aracı, IP adresleri hakkında bilgi almak için kullanışlıdır.
curl -I directline.botframework.com
öğesini çalıştırın. (Bu seçenek-I
yalnızca üst bilgiyi içeren bir yanıt almak için kullanılır.) Bağlantı olduğunu doğrulamak için 301 HTTP durumunun döndürüldüğünü bir kez daha denetleyin.
Kanaldan bota bağlantıyı test etme
Curl'in üretim sitesine erişimi olmadığından ve directline.botframework.com
genel İnternet'te olduğundan, curl'i simülasyon modunda kullanmanız gerekir. Aşağıda gösterilen adımları, örneğin bir cep telefonu etkin noktasını kullanarak sanal özel ağ (VNET) dışında gerçekleştirin. Ayrıca bkz. Azure Sanal Ağ nedir?.
nslookup ivr-sr-bot.botapps.amat.com
öğesini çalıştırın. Bu komuta verilen yanıt ilgili bilgiler içeriyorsa DNS çözümlemesi çalışır.komutunu çalıştırın
curl -I https://ivr-sr-bot.botapps.amat.com/api/messages
ve uygun bir HTTP durum kodunun döndürülp döndürülmediğini denetleyin (örneğin, 405 yöntemine izin verilmiyor). Belirtilen URI tarafından tanımlanan kaynak için istekte belirtilen yönteme izin verilmez. Bu yalnızca bağlantı olup olmadığını denetlemenin bir yoludur.Bottan yanıt alamazsanız istemcinin IP adresini yazın.
Başarısız bağlantılarda güvenlik duvarı izlemelerini denetleme
ve nslookup directline.botframework.com
ip nslookup ivr-sr-bot.botapps.amat.com
adreslerini kullanın ve her iki yönde de bu adreslerle bağlantıyı engelleyen bir kural olup olmadığını denetleyin.
.NET için Bot Framework SDK'sını kullanıyorum. Botumla ilgili sorunları nasıl giderebilirim?
Özel durumları arayın
Visual Studio 2019'da Windows>Özel Durum Ayarlar Hatalarını Ayıklama'ya >gidin. Özel Durumlar Ayarlar penceresinde, Ortak Dil Çalışma Zamanı Özel Durumları'nın yanındaki Oluşturulurken Kes onay kutusunu seçin. Ayrıca, bir özel durum oluştuğunda veya işlenmeyen özel durumlar oluştuğunda Çıkış pencerenizde tanılama çıktısı görebilirsiniz.
Çağrı yığınına bakın
Visual Studio'da Yalnızca Kodum hata ayıklaması yapıp yapmamayı seçebilirsiniz. Tam çağrı yığınını incelemek, sorunlarla ilgili daha fazla içgörü sağlayabilir.
Tüm iletişim kutusu yöntemlerinin sonraki iletiyi işlemek için bir planla sona erdiğinden emin olun
Tüm iletişim kutusu adımlarının şelalenin bir sonraki adımına beslenmesi veya geçerli iletişim kutusunu sona erdirerek yığından dışarı doğru ilerlemesi gerekir. Bir adım doğru şekilde işlenmediyse, konuşma beklediğiniz gibi devam etmez. İletişim kutuları hakkında daha fazla bilgi için iletişim kutularının kavram makalesine göz atın.
HTTP durum kodu 429 "Çok Fazla İstek" ile hataya neden olan nedir?
HTTP durum kodu 429 içeren hata yanıtı belirli bir süre içinde çok fazla istek gönderildiğini gösterir. Yanıtın gövdesi sorunun açıklamasını içermelidir ve istekler arasında gereken en düşük aralığı da belirtebilir. Bu hatanın olası kaynaklarından biri ngrok aracıdır. Ücretsiz bir plandaysanız ve ngrok'un sınırlarına giriyorsanız, daha fazla seçenek için web sitesindeki fiyatlandırma ve sınırlar sayfasına gidin.
Bot iletilerim neden kullanıcı tarafından alınmıyor?
Yanıt olarak oluşturulan ileti etkinliği doğru şekilde ele alınmalıdır, aksi takdirde hedeflenen hedefe ulaşamaz. Çoğu durumda, bunu açıkça işlemeniz gerekmez; SDK, ileti etkinliğini sizin için ele alır.
Bir etkinliği doğru şekilde ele almak için uygun konuşma kimliği ayrıntılarını ve gönderen hakkındaki ayrıntıları ekleyin. Çoğu durumda ileti etkinliği, gelen iletiye yanıt olarak gönderilir. Bu nedenle, adresleme ayrıntıları gelen etkinlikten alınabilir.
İzlemeleri veya denetim günlüklerini incelerseniz, iletilerinizin doğru şekilde ele alındığından emin olmak için denetleyebilirsiniz. Ayarlanmamışsa botunuzda bir kesme noktası ayarlayın ve iletiniz için kimliklerin nerede ayarlandığını görün.
ASP.NET'da arka plan görevlerini nasıl çalıştırabilirim?
Bazı durumlarda, birkaç saniye bekleyen ve ardından kullanıcı profilini temizlemek veya konuşma/iletişim kutusu durumunu sıfırlamak için bazı kodlar yürüten zaman uyumsuz bir görev başlatmak isteyebilirsiniz. Bunu başarma hakkında ayrıntılı bilgi için bkz . ASP.NET'da Arka Plan Görevlerini çalıştırma. Özellikle HostingEnvironment.QueueBackgroundWorkItem kullanmayı göz önünde bulundurun.
Botum aldığı ilk iletiye yavaş yanıt veriyor. Nasıl hızlandırabilirim?
Botlar web hizmetleridir ve Azure dahil bazı barındırma platformları, belirli bir süre boyunca trafik almazsa hizmeti otomatik olarak uyku moduna alır. Bu durum botunuzun başına gelirse yeni bir ileti aldığında sıfırdan yeniden başlatılması gerekir ve bu da yanıt sürecini çalışıyor durumda olmasına kıyasla daha uzun hale getirir.
Bazı barındırma platformları, hizmetinizi uyku moduna geçirilmeyecek şekilde yapılandırmanıza olanak tanır. Botunuz Azure AI Bot Hizmeti Web Apps'te barındırılıyorsa Azure portalında botunuzun hizmetine gidin, Uygulama ayarları'nı ve ardından Her zaman açık'ı seçin. Bu seçenek çoğu hizmet planında mevcuttur ancak hepsinde kullanılamaz.
İleti teslim siparişini nasıl garanti ederim?
Bot Framework, ileti sıralamasını mümkün olduğunca korur. Örneğin, A iletisini gönderir ve B iletisini göndermek için başka bir HTTP işlemi başlatmadan önce bu HTTP işleminin tamamlanmasını beklerseniz. SMS ve e-posta gibi bazı kanallar, kullanıcının iletileri alacağı sırayı garanti etmemektedir.
İleti metnimin bölümleri neden bırakılıyor?
Bot Framework ve birçok kanal, metni Markdown ile biçimlendirilmiş gibi yorumlar. Metninizin Markdown söz dizimi olarak yorumlanabilir karakterler içerip içermediğini denetleyin.
Aynı bot hizmet uç noktasında birden çok botu nasıl destekleyebilirim?
Bu örnek, öğesinin doğru MicrosoftAppCredentials
ile nasıl yapılandırıldığını Conversation.Container
ve birden çok Uygulama Kimliği ile parolanın kimliğini doğrulamak için basit MultiCredentialProvider
bir kimlik kullanmayı gösterir.
Bot Framework'te tanımlayıcılar nasıl çalışır?
Bot Framework'teki tanımlayıcılar hakkında ayrıntılı bilgi için bkz. Bot Framework tanımlayıcılar kılavuzu.
Kullanıcı kimliğine nasıl erişebilirim?
Bot Framework kanalları, kullanıcı tarafından gönderilen herhangi bir Etkinliğin from.Id
alanında kullanıcının kimliğini gösterir. SMS ve e-posta iletileri bu özellikte ham kullanıcı kimliğini sağlar. Bazı kanallar özelliği gizler from.Id
ve kullanıcının kanaldaki kimliğinden farklı olan benzersiz kimliği içerir. Mevcut bir hesaba bağlanmanız gerekiyorsa, bir oturum açma kartı kullanabilir ve kullanıcı kimliğini kendi hizmetinizin kullanıcı kimliğine bağlamak için kendi OAuth akışınızı uygulayabilirsiniz.
Facebook kullanıcı adlarım neden artık gösterilmiyor?
Facebook parolanızı değiştirdiniz mi? Bunu yaptığınızda erişim belirteci geçersiz kılınacaktır ve Botunuzun Azure portalındaki Facebook Messenger kanalı yapılandırma ayarlarını güncelleştirmeniz gerekir.
Botumdan kimliği doğrulanmış hizmetleri nasıl kullanabilirim?
Microsoft Entra Id kimlik doğrulaması için Botunuza kimlik doğrulaması ekleme öğreticisine bakın.
Dekont
Botunuza kimlik doğrulaması ve güvenlik işlevselliği eklerseniz, kodunuzda uyguladığınız desenlerin uygulamanız için uygun olan güvenlik standartlarına uygun olduğundan emin olmanız gerekir.
Botum erişimini önceden belirlenmiş bir kullanıcı listesiyle nasıl sınırlandırabilirim?
SMS ve e-posta gibi bazı kanallar kapsamsız adresler sağlar. Bu gibi durumlarda, kullanıcıdan gelen iletiler özelliğinde from.Id
ham kullanıcı kimliğini içerir.
Facebook ve Slack gibi diğer kanallar, kapsamlı veya kiracılı adresleri botun kullanıcının kimliğini önceden tahmin etmesini engelleyecek şekilde sağlar. Bu durumlarda, botu kullanma yetkisi olup olmadığını belirlemek için kullanıcının kimliğini bir oturum açma bağlantısı veya paylaşılan gizli dizi aracılığıyla doğrulamanız gerekir.
Direct Line 1.1 konuşmam neden her iletiden sonra yeniden başlıyor?
Dekont
Bu bölüm Direct Line protokolünün en son sürümü olan 3.0 için geçerli değildir
Direct Line konuşmanız her iletiden sonra yeniden başlıyor gibi görünüyorsa, from
özellik büyük olasılıkla eksiktir veya null
Direct Line istemcinizin bota gönderdiği iletilerde olabilir. Bir Direct Line istemcisi eksik veya null
özelliğine sahip from
bir ileti gönderdiğinde, Direct Line hizmeti otomatik olarak bir kimlik ayırır, böylece istemcinin gönderdiği her ileti yeni, farklı bir kullanıcıdan geliyor gibi görünür.
Bunu düzeltmek için, Direct Line istemcisinin from
gönderdiği her iletideki özelliğini, iletiyi gönderen kullanıcıyı benzersiz olarak temsil eden kararlı bir değere ayarlayın. Örneğin, bir kullanıcı bir web sayfasında veya uygulamada zaten oturum açmışsa, kullanıcının gönderdiği iletilerde özelliğin from
değeri olarak mevcut kullanıcı kimliğini kullanabilirsiniz. Alternatif olarak, sayfa yüklemesinde veya uygulama yükünde rastgele bir kullanıcı kimliği oluşturmayı, bu kimliği tanımlama bilgisi veya cihaz durumunda depolamayı ve kullanıcının gönderdiği iletilerde özelliğin from
değeri olarak bu kimliği kullanmayı seçebilirsiniz.
Direct Line 3.0 hizmetinin HTTP durum kodu 502 "Hatalı Ağ Geçidi" ile yanıt vermesine neden olan nedir?
Doğrudan Satır 3.0, botunuzla iletişim kurmaya çalıştığında ancak istek başarıyla tamamlanmadığında HTTP durum kodu 502'yi döndürür. Bu hata, botunun bir hata döndürdüğünü veya isteğin zaman aşımına uğradı olduğunu gösterir. Botunuzun oluşturduğu hatalar hakkında daha fazla bilgi için Azure portalındaki bot panosuna gidin ve etkilenen kanalın "Sorunlar" bağlantısını seçin. Botunuz için Uygulama Analizler yapılandırdıysanız ayrıntılı hata bilgilerini de burada bulabilirsiniz.
Bot oluştururken neden Authorization_RequestDenied özel durumu alıyorum?
Azure AI Bot Hizmeti botları oluşturma izni Microsoft Entra Id portalı üzerinden yönetilir. Microsoft Entra ID yönetim merkezinde izinler düzgün yapılandırılmadıysa, kullanıcılar bot hizmeti oluşturmaya çalışırken Authorization_RequestDenied özel durumunu alır.
İlk olarak dizinin "Konuğu" olup olmadığınızı denetleyin:
- Azure portalında oturum açın.
- Tüm hizmetler'i seçin ve etkin araması yapın.
- Microsoft Entra Id(Microsoft Entra Id) öğesini seçin.
- Kullanıcılar’ı seçin.
- Listeden kullanıcıyı bulun ve Kullanıcı Türünün Konuk olmadığından emin olun.
Konuk olmadığınızı doğruladıktan sonra, active directory içindeki kullanıcıların bot hizmeti oluşturabilmesini sağlamak için dizin yöneticisinin aşağıdaki ayarları yapılandırması gerekir:
- Microsoft Entra Id yönetim merkezinde oturum açın. Kullanıcılar ve gruplar'a gidin ve Kullanıcı ayarları'nı seçin.
- Uygulama kaydı bölümünde Kullanıcılar uygulamaları kaydedebilir seçeneğini Evet olarak ayarlayın. Bu, dizininizdeki kullanıcıların bot hizmeti oluşturmasına olanak tanır.
- Dış kullanıcılar bölümünde Konuk kullanıcılar izinleri Hayır ile sınırlıdır seçeneğini belirleyin. Bu, dizininizdeki konuk kullanıcıların bot hizmeti oluşturmasına olanak tanır.
Botumu neden geçiremiyorum?
Botunuz dev.botframework.com kayıtlıysa ve bunu Azure'a geçirmek istiyorsanız ancak botunuzu geçirirken sorun yaşıyorsanız, bunun nedeni botunuzun varsayılan dizininizden başka bir dizine ait olması olabilir. Şu adımları deneyin:
Hedef dizinden, varsayılan dizinin üyesi olmayan yeni bir kullanıcı (e-posta adresi aracılığıyla) ekleyin ve geçiş hedefi olan aboneliklerde kullanıcıya katkıda bulunan rolü verin.
Geliştirme Portalı'ndan, kullanıcının e-posta adresini geçirilmesi gereken botun ortak sahipleri olarak ekleyin. Ardından oturumu kapatın.
Yeni kullanıcı olarak Dev Portal'da oturum açın ve botu geçirmeye devam edin.
Nereden daha fazla yardım alabilirim?
- Stack Overflow'da daha önce yanıtlanmış soruları arayın veya etiketini kullanarak
botframework
kendi sorularınızı gönderin. Stack Overflow açıklayıcı bir başlık, eksiksiz ve kısa bir sorun bildirimi ve sorununuzu yeniden oluşturmak için yeterli ayrıntı gerektirme gibi yönergelere sahiptir. Özellik istekleri veya çok geniş kapsamlı sorular konu dışıdır; yeni kullanıcıların daha fazla ayrıntı için Stack Overflow Yardım Merkezi'ni ziyaret etmesi gerekir. - Bot Framework SDK'sıyla ilgili bilinen sorunlar hakkında bilgi edinmek veya yeni bir sorun bildirmek için GitHub'daki BotBuilder sorunlarına başvurun.
- Gitter'de BotBuilder topluluk tartışması.