Работает в режиме отладки, но не при публикации. Как это решить?

#asp.net #azure #text-to-speech #razor-pages

Вопрос:

Добрый вечер,

Прежде всего, я признаю, что я новичок, и мне очень жаль, если мой вопрос действительно глуп, но я не смог найти ответа в Интернете.

Я пытаюсь создать веб-приложение с голосовым агентом, используя ресурсы Azure.

До сих пор у меня есть базовое веб-приложение, использующее ASP.NET 5.0 и голосовой агент. Когда я запускаю приложение в отладке и нажимаю на кнопку, которую я создал, чтобы активировать голос, это работает, вы можете слышать, как говорит агент. Однако, когда я публикую приложение в Chrome или edge, звука больше нет, даже если похоже, что кнопка работает, потому что в конце URL-адреса появляется «?обработчик=кнопка».

Вот код для файла cshtml:

 @model IndexModel
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

@{
    ViewData["Title"] = "Home page";
}
<div>
    <h1>Hello, world!</h1>
    <p>The time on the server is @DateTime.Now</p>
</div>

<div>
    <h2>Weather Aria</h2>
    <p>
        @Model.Message
    </p>
</div>
<div>
    <form asp-page-handler="button" method="post">
        <button class="btn btn-default">CLICK ME</button>
    </form>
</div>
 

а вот код для файла Index.cshtml.cs:

 using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.CognitiveServices.Speech;
using Microsoft.CognitiveServices.Speech.Audio;


namespace MySecondAzureWebApp.Pages
{
    public class IndexModel : PageModel
    {
        public static async Task SynthesizeAudioAsync()
        {
            //configure subscription: key   location
            var config = SpeechConfig.FromSubscription("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "westeurope");
            using var synthesizer = new SpeechSynthesizer(config);
            await synthesizer.SpeakTextAsync("Hello, I'm Aria, can you hear me ?");
        }

        public string Message { get; private set; } = "Aria starts talking. Can you hear her?";

       public void OnGet()
        {
             Message  = $" Server time is { DateTime.Now }";
        }
        public async Task OnPost()
        {
            await SynthesizeAudioAsync();
        }
    }
}
 

Вы знаете, откуда возникает проблема и как я могу ее решить ?

Я читал в Интернете, что это может иметь какое-то отношение к серверу, но я понятия не имею, как его изменить. И я даже не знаю, так ли это, так как я использую только azure.

Я был бы очень признателен за любую помощь, заранее благодарю.

Комментарии:

1. Можете ли вы убедиться, что вкладка вашего браузера не отключена?

2. Я это уже проверил ^^. Теперь я внес незначительные изменения в код, и у меня появилось сообщение об ошибке «При обработке вашего запроса произошла ошибка. При переключении режима разработки в среду разработки отображается подробная информация о возникшей ошибке. Среда разработки не должна быть включена для развернутых приложений. Это может привести к отображению конфиденциальной информации от исключений конечным пользователям. Для локальной отладки включите среду разработки, установив переменную среды ASPNETCORE_ENVIRONMENT в значение»Разработка» и перезапустив приложение.»

Ответ №1:

Если развертывание в Azure еще находится в разработке, вы можете настроить среду ASPNETCORE_ENVIRONMENT на разработку в настройках приложения

введите описание изображения здесь