Если ваш ASMX не будет вызван как HTTP POST с типом контента как "application/x-www-form-urlencoded
", вы не получите эти параметры от объекта HttpRequest
.
Это просто потому, что тело запроса может иметь любой тип содержимого - например, в службах сценариев (ASP.NET AJAX) тело запроса будет иметь данные JSON. Если к ASMX обращались как к веб-службе SOAP, то телом запроса будет XML (фактический конверт SOAP).
Обычно ASP.NET во время выполнения на основе конфигурации пытается проанализировать тело запроса и пытается преобразовать его в вызов метода вместе с фактическими параметрами метода. Поэтому правильным способом было бы проверить параметры вашего метода в коде метода. Сложный подход заключается в том, чтобы ссылаться на тип содержимого запроса и анализировать (самостоятельно) тело запроса (HttpRequest.InputStream
) соответственно.