繁体   English   中英

返回图像的ASMX Web服务

[英]ASMX Web Service that returns image

我想要一个返回.png文件的.asmx服务。 我的问题是,我的Web应用程序托管在GoDaddy上。 因此,我无法编辑web.config文件。 如果我可以编辑web.config文件,则只需创建一个HTTP处理程序。

我的问题是,有没有办法让.asmx返回图像? 如果是这样,怎么办?

为什么不简单地让服务将图像作为字节数组( byte[] )返回。

我不知道为什么您认为应该编辑web.config。

这实际上取决于您要如何使用图像。 如果您选择像约翰建议的那样返回字节数组,那么将其序列化为xml(或json)会产生巨大的开销,大约是13-15倍(对于xml)。

我建议您使用引用图像的查询字符串arg创建通用处理程序(.ashx),然后直接将其写入响应流。

然后在您的Web服务中,使用适当的查询字符串将URL代替图像返回到处理程序。 然后,服务的消费者可以负责获取图像。

希望这会有所帮助。

从Web服务返回图像的最佳方法可能只是以字节数组或包含字节数组的自定义类型(以及其他信息,例如图像类型或建议的文件名等)形式返回它。 )。

当您说要它返回图像时,您究竟期望什么? 您是否希望图像具有链接时在Web浏览器中呈现的方式? 如果是这样,您将必须手动操作输出。 在线上有很多关于“从asp .net中的数据库显示图像”的教程,对您有帮助。

基本上,您将劫持响应并更改其标头,写入二进制图像数据,然后结束响应。 它在网页上可以很好地工作,但是我从未在网络服务上尝试过。 但是,对于Web服务,这样做会被认为是较差的形式。 它将破坏Web服务的“合同”。 (这就是为什么我希望并且至少假设这不是期望的效果。)

如果只需要返回PNG文件的处理程序,请使用.ashx文件。 如果要使用返回PNG文件的方法提供服务,请先将PNG转换为字节数组,然后返回该数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM