РЕДАКТИРОВАТЬ: переписать несколько сейчас, я перечитал вопрос ...
WebInvoke
позволяет указать, какой глагол будет разрешен, по умолчанию POST. WebGet
требует, чтобы клиент использовал запрос GET. В любом случае, если используется неправильный глагол, вы получите «метод не разрешен». Вы использовали браузер, поэтому он делал запрос GET, поэтому обычный WebInvoke только для POST отклонял бы его, тогда как WebGet это разрешал. Конечно, вы можете указать Method="GET"
в объявлении атрибута WebInvoke
, чтобы разрешить GET.