Я бы предпочел не вступать в дискуссию о том, являются ли HTTP-глаголы PUT и DELETE уместными или устаревшими, и сосредоточиться на вопросе о том, как заставить Silverlight работать, когда «вынужден» использовать эти глаголы.
пытается создать клиентское приложение Silverlight 4, которое вызывает существующую веб-службу REST, в которой есть операции для команд PUT и DELETE.Этот сервис не будет изменен.
Я добавил следующее утверждение в конструктор в своем App.xaml.cs:
WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
Служба имеет файл clientaccesspolicy.xml, который содержит:
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
Я использую класс WebClient для обработки запросов GET и POST.Когда я пытаюсь сделать то же самое с PUT или DELETE для глагола / метода, я получаю неоднозначную «ошибку безопасности», которая привела меня к добавлению вышеупомянутого утверждения.
Я видел различные посты и статьи блогов, говорящиеоб использовании HttpWebRequest, чтобы обойти это, но не нашел того, который на самом деле ПОКАЗЫВАЕТ, КАК делать эти (асинхронные) вызовы из клиента Silverlight.
Если что-то не так с кодом выше, пожалуйста, сообщите мне.В противном случае, если вы можете показать мне или указать на пример, демонстрирующий, как эти запросы могут быть реализованы, я был бы очень признателен за помощь.