3
正如話題所述,我遇到問題以從我的Wcf休息服務接收圖片。終點似乎沒問題,但我只收回空數據。無法從WCF Rest服務返回圖片
的Web.config:
<service name="RestService.RestServiceImpl" behaviorConfiguration="ServiceBehaviour">
<endpoint address ="" binding="webHttpBinding" contract="RestService.IRestServiceImpl" behaviorConfiguration="web"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
SVC:
[OperationContract]
[WebGet(UriTemplate = "GetImage", RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare)]
Stream GetImage();
public Stream GetImage()
{
var ms = new MemoryStream();
Resource1.batman.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
WebOperationContext.Current.OutgoingResponse.ContentType = "image/png";
return ms;
}
標記:
<%@ ServiceHost Language="C#" Debug="true" Service="RestService.RestServiceImpl" CodeBehind="RestServiceImpl.svc.cs" Factory="System.ServiceModel.Activation.WebServiceHostFactory"%>
嘗試在返回之前將內存流的位置設回0。你是否使用瀏覽器的這個調用? 爲什麼不返回圖像的字符串位置並讓瀏覽器加載它? – Erix
謝謝Erix!設置ms.Position = 0;在返回之前做了詭計! – Krika
不客氣。如果你不介意標記它,我已經添加了這個答案。 (這是一個答案之前,但一個國防部刪除它的一些愚蠢的原因) – Erix