Почему я не могу использовать serveo вместо ngrok для туннелирования подключения к приложению mvc, размещенному на сервере EC2, для получения SMS на Twilio

У меня есть простое веб-приложение asp.net mvc, которое прослушивает сообщение и отвечает стандартным ответом. Он использует Twilio API и в

Вот код:

// Code sample for ASP.NET MVC on .NET Framework 4.6.1+
// In Package Manager, run:
// Install-Package Twilio.AspNet.Mvc -DependencyVersion HighestMinor

using Twilio.AspNet.Common;
using Twilio.AspNet.Mvc;
using Twilio.TwiML;

namespace WebApplication1.Controllers
{
    public class SmsController : TwilioController
    {
        public TwiMLResult Index(SmsRequest incomingMessage)
        {
            var messagingResponse = new MessagingResponse();
            messagingResponse.Message("The copy cat says: " +
                                      incomingMessage.Body);

            return TwiML(messagingResponse);
        }
    }
}

Чтобы запустить код, Twilio предлагает мне «Хотя существует множество способов сделать это, например, развернуть приложение в Azure или AWS, вам, вероятно, понадобится менее трудоемкий способ протестировать Twilio, например ngrok, чтобы разрешить Twilio для общения с вашим приложением ASP.NET"

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

Что я хотел бы знать, так это то, что я попробовал альтернативный сервер под названием serveo, который позволил мне выбрать поддомен бесплатно, но URL-адрес сгенерировал его с ошибкой (400), когда я отправляю сообщение в Twilio.

Есть ли обходной путь? Я новичок в мире веб-приложений asp.net mcv и Twilio и был бы очень признателен за некоторые рекомендации.

Мне просто нужно, чтобы этот код продолжал работать, чтобы он мог прослушивать SMS и отвечать.

Если нет, как я могу развернуть его на AWS? Что даст мне URL-адрес для передачи на консоль Twilio.


person Ayush Singhania    schedule 24.05.2019    source источник
comment
Вы ищете способ развернуть свой код, чтобы он мог продолжать работать, или вы все еще тестируете?   -  person philnash    schedule 27.05.2019
comment
@philnash Я ищу способ его развернуть.   -  person Ayush Singhania    schedule 27.05.2019
comment
В этом случае я бы поискал несколько руководств по развертыванию приложений asp.net в AWS или Azure. Использование ngrok (или любого другого решения для туннелирования) предназначено для тестирования вашего локального приложения.   -  person philnash    schedule 27.05.2019


Ответы (1)


Причина, по которой «serveo» не работает, заключается в том, что (я полагаю) вы используете IIS Express, который не разрешает запросы с заголовком хоста, отличным от localhost.

У ngrok есть способ обойти это, как и у нашего бесплатного расширения VS под названием Conveyor. Conveyor на данный момент имеет туннелирование в бета-версии, но оно стабильно, а субдомены исправлены. Вы можете загрузить его из меню «Расширения» в VS или на торговой площадке. Вот руководство по Twilio https://conveyor.cloud/Help/Writing_webhooks_on_localhost_with_Visual_Studio_and_IIS_Express

person Jim W says reinstate Monica    schedule 24.07.2019