我先定义一个契约 [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 关注
- 615 浏览
添加回答
举报
0/150
提交
取消