私が達成しようとしているのは、WCF RESTベースのサービスにGET
メソッドを追加し、Silverlight 3クライアントアプリケーションからWebRequest
クラスを介してアクセスすることです。WCF RESTベースのGETリクエストの生のXMLの保持
エラーが発生しましたリモートサーバーからエラーが返されました: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とWebブラウザを使用してこのメソッドを正常に実行できます。
@rekire。また、私はこのサービス定義に取り組んでいる他の多くのメソッドを持っていますが、失敗した 'Stream'や' XmlElement'の戻り値の型を持つメソッドを作成すると、 – Craig
@rekireを見ていただきありがとうございます。 – Craig