У меня есть веб-сервис, развернутый на IIS 8.5 (Windows Server 2012 R2), который должен вызываться с передачей четырех аргументов.Они не являются обязательными и должны быть включены непосредственно в URL без строки запроса, например:
.. api / myservice / аргумент1 / аргумент2 / аргумент3 / аргумент4
Если я попытаюсь позвонить по указанному выше URL-адресу, он ответит и даст ожидаемый ответ.Однако вместо этого 404 - Not Found выдается ошибка при попытке использовать реальные производственные аргументы как таковые:
api / myservice / AAAA_AAAAA.AAA_AAA_AA_AA_AAA_000000_000000_000000 / 333 / AAA /AAA.AAA.AA.AA.AAA.000000.000000.000000
Я думал, что проблема возникла с несколькими точками, поэтому я заменил каждую из них на % 2E , но ничегоизменилось.Я уже искал ответы на вопросы: я пытался это и это , но безрезультатно.
В чем проблема с этим производственным URL-адресом?Вот код API:
[RoutePrefix("api/myservice")]
public class MyServiceController : ApiController
{
[HttpGet]
[Route("{argument1}/{argument2}/{argument3}/{argument4}")]
public string StartValidation(string argument1, string argument2, string argument3, string argument4)
{
// operations...
}
}
Я проследил запрос с помощью IIS Failed Request Tracing, как было предложено в ответе, но я не могу найти подсказку в итоговом журнале: Кто-нибудь может мне помочь?