Бот, опубликованный в Azure, получает внутреннюю ошибку сервера - PullRequest
0 голосов
/ 02 декабря 2018

Итак, я создаю чат-бота с использованием Bot Framework SDK v4.Я тестировал его локально, и он отлично работает с эмулятором ботов.

Я хочу иметь возможность разместить его на Azure и получить к нему удаленный доступ, но когда я публикую его, и браузер откроет мой azurewebsites.netвеб-страница, на странице просто отображается сообщение об ошибке: Произошла ошибка при запуске приложения.

Когда я смотрю на консоль для проверки ошибки, появляются 2 запроса ресурсов, которые не загружаются:

Failed to load resource: the server responded with a status of 500 (Internal Server Error) /favicon.ico:1 
Failed to load resource: the server responded with a status of 500 (Internal Server Error) (index):1

Я впервые использую или публикую что-то в Azure, поэтому я не слишком знаком с этим.Насколько я знаю, в моем локальном каталоге нет файлов с этими именами, и я не уверен, как исправить проблему.

И идея в том, что это вызвало?При необходимости я могу предоставить больше кода.

РЕДАКТИРОВАТЬ Более подробную информацию я получил от Application Insights и Kudu.

При попытке отправить сообщение боту в Azureиспользуя «Test Web App», я получаю следующие исключения:

System.IO.FileNotFoundException: Could not find file 'D:\home\site\wwwroot\Chatbot.bot'.
 File name: 'D:\home\site\wwwroot\Chatbot.bot'
 at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options)
 at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
 at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize)
 at System.IO.File.OpenText(String path)
 at Microsoft.Bot.Configuration.BotConfiguration.<LoadAsync>d__31.MoveNext()
 --- End of stack trace from previous location where exception was thrown ---
 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
 at Microsoft.Bot.Configuration.BotConfiguration.Load(String file, String secret)
 at ChatBotProject.Startup.<>c__DisplayClass6_0.<ConfigureServices>b__0(BotFrameworkOptions options) in C:\Users\Marko\Documents\Project\ChatBotProject\ChatBotProject\Startup.cs:line 47
 at Microsoft.Extensions.Options.ConfigureNamedOptions`1.Configure(String name, TOptions options)
 at Microsoft.Extensions.Options.OptionsFactory`1.Create(String name)
 at Microsoft.Extensions.Options.OptionsManager`1.<>c__DisplayClass5_0.<Get>b__0()
 at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
 at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
 at System.Lazy`1.CreateValue()
 at Microsoft.Extensions.Options.OptionsCache`1.GetOrAdd(String name, Func`1 createOptions)
 at Microsoft.Extensions.Options.OptionsManager`1.Get(String name)
 at Microsoft.Extensions.Options.OptionsManager`1.get_Value()
 at Microsoft.Bot.Builder.Integration.AspNet.Core.ApplicationBuilderExtensions.UseBotFramework(IApplicationBuilder applicationBuilder)
 at ChatBotProject.Startup.Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) in C:\Users\Marko\Documents\Project\ChatBotProject\ChatBotProject\Startup.cs:line 122
 --- End of stack trace from previous location where exception was thrown ---
 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
 at Microsoft.AspNetCore.Hosting.ConventionBasedStartup.Configure(IApplicationBuilder app)
 at Microsoft.AspNetCore.ApplicationInsights.HostingStartup.ApplicationInsightsLoggerStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder builder)
 at Microsoft.ApplicationInsights.AspNetCore.ApplicationInsightsStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)
 at Microsoft.AspNetCore.Server.IISIntegration.IISSetupFilter.<>c__DisplayClass3_0.<Configure>b__0(IApplicationBuilder app)
 at Microsoft.AspNetCore.Hosting.Internal.AutoRequestServicesStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder builder)
 at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()

Кроме того, после проверки журналов в Kudu, в html есть описание того, что может быть причиной:

<fieldset>
<h4>Most likely causes:</h4>
<ul>
    <li>IIS received the request; however, an internal error occurred during the processing of the request. The
        root cause of this error depends on which module handles the request and what was happening in the worker
        process when this error occurred.</li>
    <li>IIS was not able to access the web.config file for the Web site or application. This can occur if the NTFS
        permissions are set incorrectly.</li>
    <li>IIS was not able to process configuration for the Web site or application.</li>
    <li>The authenticated user does not have permission to use this DLL.</li>
    <li>The request is mapped to a managed handler but the .NET Extensibility Feature is not installed.</li>
</ul>

1 Ответ

0 голосов
/ 02 декабря 2018
System.IO.FileNotFoundException: Could not find file 'D:\home\site\wwwroot\Chatbot.bot'.

Как вы развернули свой проект в Azure?Похоже, что ваш файл Chatbot.bot не был развернут на wwwroot, что является обязательным и может включать в себя определенные настройки бота, такие как идентификатор приложения и пароль.

Ответ всвязанный вопрос StackOverflow описывает, как загрузить файл .bot после развертывания в Visual Studio, но вы также можете просто загрузить файл вручную в wwwroot.

...