Не работает роутинг на хостинге
Делаю бота для телеграма. Взял пример веб-приложения с вебхуками.
Есть класс, отвечающий за настройку вебхука (вообще, что он делает, в данном случае, не так важно):
public class WebhookController : ControllerBase
{
[HttpPost]
public async Task<IActionResult> Post([FromServices] HandleUpdateService handleUpdateService,
[FromBody] Update update)
{
await handleUpdateService.OnUpdate(update); // реакция на обновление
return Ok();
}
}
В Startup.cs настраивается роутинг для вызова этого метода по адрессу домен/bot/токен:
public void Configure(IApplicationBuilder app, IWebHostEnvironment environment)
{
if (environment.IsDevelopment())
app.UseDeveloperExceptionPage();
app.UseRouting();
app.UseCors();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute( // настройка роутинга для метода WebhookController.Post
"tgwebhook",
$"bot/{_botConfiguration.Token}",
new { controller = "Webhook", action = nameof(WebhookController.Post) });
endpoints.MapControllers();
});
}
_botConfiguration подтягивается из файлов конфигурации, которые я специально, для избежания ошибок на этом этапе, сделал идентичными для разработки и публикации.
При локальном запуске я без проблем через Postman-а могу послать POST-запрос по адресу https://127.0.0.1:81/bot/токен. Однако, когда я публикую сайт на хостинг (там вроде IIS 10), при POST-запросе https://user19598.realhost-free.net/bot/токен я получаю в ответ 404.
Веб-конфиг:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<customErrors mode="Off"/>
<httpRuntime requestPathInvalidCharacters="<,>,*,%,&,\,?" />
</system.web>
</configuration>