Я пытаюсь добавить метод GET
к моей службе на основе WCF REST и получить к нему доступ через класс WebRequest
из клиентского приложения Silverlight 3.
Я получаю сообщение об ошибке Удаленный сервер вернул ошибку: NotFound. , которая, насколько я понимаю, может быть просто общей ошибкой для любой ошибки 500, возникшей на сервере.
Контракт на эксплуатацию WCF:
[OperationContract, WebGet(UriTemplate = "path/{id}")]
Stream Get(string id);
Выполнение операции:
public Stream Get(string id)
{
WebOperationContext.Current.OutgoingResponse.ContentType = "application/xml; charset=utf-8";
return new MemoryStream(Encoding.UTF8.GetBytes("<xml><id>1</id><name>Some Name</name></xml>));
}
Код клиента, который выдает исключение:
HttpWebRequest webRequest = WebRequest.CreateHttp("http://domain.com/my-service.svc/path/1");
webRequest.BeginGetResponse(
x =>
{
try
{
using (WebResponse webResponse = webRequest.EndGetResponse(x)) <--Exception thrown here
using (Stream stream = webResponse.GetResponseStream())
{
//do stuff here...eventually.
}
}
catch (Exception ex)
{
}
},
null);
Я подозреваю, что это как-то связано с типом возврата, а также пытался вернуть XmlElement
безрезультатно. Я действительно в тупике, есть идеи, что я могу делать не так?
Обратите внимание, что я могу успешно использовать метод с помощью Fiddler и веб-браузера.