Получите сообщение об ошибке «502 - веб-сервер получил неверный ответ, выступая в качестве шлюза или прокси-сервера» при открытии страницы регистрации в Azure - PullRequest
0 голосов
/ 18 мая 2018

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

Я могу опубликовать сайт на Azure:

https://mytrade20180517093224.azurewebsites.net/

Я также могу войтибаза данных Azure от vs2017, использующая те же учетные данные, которые я указал в моем appsettings.json.Однако проблема, с которой я сталкиваюсь, заключается в том, что мой лазурный сайт перестает работать при регистрации:

https://mytrade20180517093224.azurewebsites.net/Account/Register

Я получаю:

502 - веб-сервер полученневерный ответ при работе в качестве шлюза или прокси-сервера.

Проблема со страницей, которую вы ищете, и она не может быть отображена.Когда веб-сервер (действуя в качестве шлюза или прокси-сервера) связался с вышестоящим контент-сервером, он получил недопустимый ответ от контент-сервера.

У меня есть тип аутентификации «индивидуальные учетные записи пользователей».воссоздали таблицы для этого на лазурной базе данных, на которую я ссылаюсь.В файле startup.cs я вызываю строку «DefaultConnection», если среда находится в разработке, а если нет (то, что я предполагаю, что Azure не будет по умолчанию), вызываю другую строку подключения, лазурную:

if (HostingEnvironment.IsDevelopment())
{
    services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}
else
{
    services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlServer(Configuration.GetConnectionString("azure")));
}   

Требуется ли для Azure что-то другое, чтобы выбрать строку подключения?Я пытался включить какую-то регистрацию в Azure, но, похоже, это не имело никакого значения.Любой, какие-либо подсказки относительно того, что я мог бы делать неправильно?

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

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

  1. Установите значение ASPNETCORE_ENVIRONMENT в azure в webapp> property> debug.

enter image description here

2.Следуйте ASP.NET Core MVC с Entity Framework Core для начала работы.

3. Установите appsetting.json с двумя строками подключения.

{
  "ConnectionStrings": {
    "DefaultConnection": "connectiondefault",
    "azure": "connectionazure"
  },
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  }
}

Примечание : Вы также можете установить здесь строку подключения в базе данных на портале, затем протестировать ее локально и использовать отладку для устранения неполадок.

Кроме того, вы можете попробовать проверить с помощью одной строки подключения , чтобы убедиться, что у вас нет проблем с подключением к базе данных.

4. Включите страницу исключений разработчика с помощью app.UseDeveloperExceptionPage(); и методов app.UseExceptionHandler в классе запуска, которые будут отображать ошибки.

        public Startup(IHostingEnvironment env)
        {
            Configuration = new ConfigurationBuilder()
                .SetBasePath(env.ContentRootPath)
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                .Build();

            HostingEnvironment = env;
        }

        public IConfigurationRoot Configuration { get; }
        public IHostingEnvironment HostingEnvironment { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            if (HostingEnvironment.IsDevelopment())
            {
                services.AddDbContext<SchoolContext>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
            }
            else
            {
                services.AddDbContext<SchoolContext>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("azure")));
            }
            services.AddMvc();
        }

Если у вас все еще есть проблемы, вы можете включить Журналы диагностики на портале и обратиться к этой статье для устранения неполадок.

0 голосов
/ 18 мая 2018

Да, в Azure вам нужно указать строку подключения по-другому. Войдите на portal.azure.com Перейдите в Веб-приложение -> Настройки -> Настройки приложения -> Строки подключения ЗдесьВы добавляете новую строку подключения с именем в вашем случае Лазурный

**Azure connection settings**

...