как передать десятичное число в остальные веб-службы - PullRequest
3 голосов
/ 23 февраля 2011

Я хочу передать десятичное число (1.23) моему веб-сервису WCF-REST.

Я получаю сообщение об ошибке «ресурс не найден». Я ожидаю, что столкнулся с некоторой функцией безопасности IIS, где URL-адреса, содержащие точку, являются ресурсом. У кого-нибудь есть предложения по передаче десятичного числа моему веб-сервису?

Пример URL ... http://localhost/restdataservice.svc/echo/2.2

Операционный договор

[OperationContract]
[WebGet(UriTemplate = "echo/{number}")]
string Echo(string number);

А, реализация

public string Foo(string number)
{
  return number;
}

Ответы [ 4 ]

3 голосов
/ 23 февраля 2011

Вы должны посмотреть журнал IIS, чтобы увидеть проблему.Одна вещь, которая может вызвать такую ​​проблему - UrlScan .Он имеет конфигурационный файл UrlScan.ini, где вы можете найти параметр AllowDotInPath .Если установлено значение 0 , запросы, такие как указано выше, будут отклонены.Просто измените его на 1 (но не забудьте убедиться, что вы не разрешаете обратный путь в каталогах, отклоняя URL с помощью ..).

1 голос
/ 23 февраля 2011

Возможно, вы захотите отправить этот номер вашему ресурсу в виде запроса с использованием запроса POST.

0 голосов
/ 14 сентября 2018

У меня была похожая проблема при вызове метода на OData-сервере WCF.

Проблема заключалась в том, что для десятичного параметра в конце требуется символ «m».

http://localhost/restdataservice.svc/echo/2.2m
0 голосов
/ 23 февраля 2011

Это должно работать нормально из коробки, я не могу воспроизвести эту проблему с подобной базовой установкой - вы уверены, что маршрут по умолчанию для вашего echo метода установлен правильно?

...