我先定義一個契約??? [ServiceContract]??? public interface IMessage??? {????????[OperationContract]????????Image GetImage();??? }
再實現它??? public class MessageService : IMessage??? {????????public Image GetImage()????????{????????????return??Image.FromFile("用戶管理.png");????????}??? }采用TCP綁定,客戶端調用的時候始終都是報錯,顯示超時時間已到。把超時時間改大也沒用。
但是我使用Stream替換Image卻可以返回,如下
??? public class MessageService : IMessage??? {????????public Stream GetImage()????????{
Stream sm=FileStream.........?????????? return sm;????????}??? }
?
請問 WCF方法如何才能正確返回圖像?
另外我的其他WCF方法中也有類似問題,如下
??? public class MessageService : IMessage??? {????????public?我的自定義類?GetImage()????????{
我的自定義類 aa =new 我的自定義類();?????????? return aa;????????}??? }
我的自定義類中有一個屬性類型是Image,當aa.Image為null的時候這個方法沒問題,客戶端可以正確返回值,但是如果不為null,那么就肯定出現上面一樣的超時錯誤,求大蝦幫忙解決!
4 回答

嚕嚕噠
TA貢獻1784條經驗 獲得超7個贊
你使用的真實類型是Bitmap,你可以試試下面兩種解決方案:
1、將ServiceContract的返回值類型從Image換成Bitmap ;
2、通過System.ServiceModel.ServiceKnownTypeAttribute讓Bitmap變成已知類型
- 4 回答
- 0 關注
- 664 瀏覽
添加回答
舉報
0/150
提交
取消