Как настроить Visual Studio 2017 для предоставления незашифрованного порта на https-сайте ASP.Net MVC

Я пытаюсь протестировать веб-перехватчики с Stripe.com на своем локальном хосте (машине разработки) с помощью Visual Studio 2017. Мой сайт использует https. Чтобы протестировать веб-хуки, вам нужен URL-адрес, поэтому на моем локальном компьютере я должен установить и использовать ngrok. Ngrok дает мне URL-адрес для Stripe, чтобы Stripe знал, куда отправлять запрос на публикацию. Проблема в том, что ngrok не работает с https!

Я искал решение в течение 2 дней и отправил электронное письмо ngrok, чтобы спросить, они ответили:

вы должны настроить VS для предоставления незашифрованного порта, но я не очень хорошо знаком с этим, чтобы я мог рассказать вам, как это сделать. может расширение ngrok VS поможет? https://ngrok.com/docs#visual-studio

Я уже пытался запустить расширение. Неудачно! Все, что он делает, это открывает ngrok.exe и запускает его.

Итак, я пытаюсь выяснить, можно ли открыть/выставить незашифрованный порт? Я предполагаю, что это означает метод действия или контроллер, использующий http, а НЕ https?

Или это означает что-то другое? Возможно ли это в ASP.NET MVC???


person user1186050    schedule 27.10.2017    source источник


Ответы (2)


Сегодня утром мне удалось заставить мой проект ASP.NET Core MVC принимать тестовые вызовы веб-перехватчиков Stripe, используя ngrok в VS 2017, работающем на IIS Express.

Я должен был сделать две вещи:

  1. Выключите app.UseHttpsRedirection() во время тестирования. Я изменил свой Startup.Configure(..), чтобы использовать перенаправление HTTP только тогда, когда он не находится в разработке, например:

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {               
            // <snip>
        }
        else
        {
            // <snip>
            app.UseHttpsRedirection(); // <- Moved from outside to inside else block to allow ngrok tunneling for testing Stripe webhooks
        }
    
        // <snip>
        app.UseMvc();
    }
    
  2. Запустите туннелирование ngrok, используя не-HTTPS URL-адрес веб-сайта. В моем случае мой проект настроен на использование следующих портов:

      <binding protocol="http" bindingInformation="*:64768:localhost" />
      <binding protocol="https" bindingInformation="*:44358:localhost" />
    

    Итак, моя команда ngrok такова:

    ngrok http 64768 -host-header="localhost:64768"
    

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

person Jon    schedule 30.08.2018

См. мой ответ здесь: Как отключить HTTPS в Visual Studio 2017 Web Proj ASP.NET Core 2.0

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

Просто используйте установленный незащищенный URL-адрес вместо защищенного.

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

person Bret Royster    schedule 24.02.2018