ServiceStack прерывается при размещении в AWS API Gateway

#aws-api-gateway #servicestack

#aws-api-шлюз #servicestack

Вопрос:

В настоящее время возникла проблема с ServiceStack, из-за которой он не будет запускаться в AWS api gateway после версии 5.8 с включенным протоколированием запросов. Если я отключу выход из системы запроса, все будет в порядке.

Исправлено с версии 5.10.3, спасибо mythz!

Ответ №1:

По умолчанию ServiceStack выводит базовый URL из URL-адреса входящего запроса, но вы можете настроить его на использование определенного внешнего URL-адреса с:

 SetConfig(new HostConfig {
#if !DEBUG
    WebHostUrl = "https://xxxx.execute-api.us-west-2.amazonaws.com/dev"
#endif
});
 

Кроме того, вы можете переопределить GetBaseUrl(IRequest) в своем AppHost, чтобы изменить поведение по умолчанию во время выполнения, для которого baseUrl будет использоваться во время выполнения.

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

1. Итак, я попытался сделать это, на самом деле дошел до следующего, чтобы убедиться, что он установлен: ` SetConfig(new HostConfig { AddRedirectParamsToQueryString = true, DebugMode = AppSettings . Get(nameof(HostConfig. DebugMode), false), WebHostUrl = » xxxx.execute-api.us-west-2.amazonaws.com/dev » }); ` Все еще получаю точно такое же поведение. Удаляет /dev при запросе в favicon. Хотелось бы, чтобы это сработало, поскольку мы действительно хотим обновить.

2. @MikeGilge Вы имеете в виду значок по умолчанию. запрос ico, который браузеры автоматически запрашивают , всегда выполняется в /favicon.ico домене? Или фактические недостающие ресурсы на странице / swagger-ui? Можете ли вы обновить свой ответ, включив в него необработанные заголовки HTTP-запроса / ответа страницы с проблемой и фрагмент HTML, который ее вызывает (AWS API Gateway может выполнять некоторую перезапись URL-адреса).

3. Я обновил свой первоначальный пост дополнительными подробностями. Очень хотелось бы это исправить.

4.@MikeGilge Если это касается только неудачного /favicon.ico запроса, пожалуйста, прочтите мой предыдущий комментарий ссылка. Браузеры делают /favicon.ico запросы с прошлого тысячелетия, вам нужно либо поместить a /favicon.ico в корень вашего приложения, либо вы можете переопределить /swagger-ui/index.html с пользовательской версией, определяющей свой собственный значок, или если вы все еще используете старый SwaggerApiFeature переключатель для OpenApiFeature.

5. Проблема в том, что при включенном протоколировании запросов он полностью прерывается, и я получаю белый экран смерти, отключение этой строки с комментариями заставляет его работать. Исключений нет, и нет никаких указаний на то, что не так, кроме этого глупого значка. Очень подозреваю, что если значок исправлен, он все равно умрет при следующем запуске. Я надеялся, что у вас может быть идея, почему он прерывается при переходе с версии 5.8 на что-либо более новое, поскольку он работал нормально до появления этой ОШИБКИ.