В приложении ASP. NET у нас есть много (думаю, несколько десятков) классов контроллеров, таких как:
[RoutePrefix("some/thing/1.0")]
public class SomeController : ApiController
{
[HttpGet]
[Route("")]
public string GetInfo()
{
return "hello world";
}
[HttpPut]
[Route("")]
public void StoreInfo(string info)
{
// ...
}
}
Это работало нормально в течение нескольких недель, без каких-либо проблем. , Мы могли бы назвать эти конечные точки следующим образом:
GET https://myWebApp/client/some/thing/1.0
Теперь, со вчерашней ночной сборкой, это перестало работать. Внезапно мы можем получить доступ только к тем URL-адресам с конечным значением sh, то есть
GET https://myWebApp/client/some/thing/1.0/
Это относится и к параметризованным запросам:
GET https://myWebApp/client/some/thing/1.0?x=42
больше не работает, но
GET https://myWebApp/client/some/thing/1.0/?x=42
делает.
Поскольку последняя рабочая сборка была только один день назад, я отсканировал историю коммитов нашего исходного кода, и я сравнил пакеты сборки бок о бок , Я не смог найти никаких изменений, которые, по-видимому, были связаны с этой проблемой.
Более того, это определенно связано с некоторыми изменениями в нашем приложении: я мог воспроизвести проблему на своей локальной копии приложения точно после обновление моих двоичных файлов до тех, что были в вчерашней сборке. (Обратите внимание, что сегодня утром была создана другая сборка, и проблема все еще осталась. Итак, вчерашняя сборка не была каким-то образом повреждена; все, что изменилось, кажется постоянным.)
Что мог бы измениться, и где еще я мог бы go искать его?
Или, более активно спросить:
Где я могу изменить это поведение?