0
我的应用程序部署到不使用粘性会话的Web场(不幸的是,这不是一个选项)。我想将图表图像写入Web服务并从那里读取,因为客户端浏览器并不总是被重定向到图像已经被渲染到的同一服务器。由于安全限制,我无法使用文件服务器,并且无法直接访问IIS服务中的数据库直接访问wcf服务。ASP.NET MS Chart可以使用Http Handler从Web服务读取和写入Tempory图像
我的应用程序部署到不使用粘性会话的Web场(不幸的是,这不是一个选项)。我想将图表图像写入Web服务并从那里读取,因为客户端浏览器并不总是被重定向到图像已经被渲染到的同一服务器。由于安全限制,我无法使用文件服务器,并且无法直接访问IIS服务中的数据库直接访问wcf服务。ASP.NET MS Chart可以使用Http Handler从Web服务读取和写入Tempory图像
所以你问:
客户端 - > WS调用 - > ?? - >生成图表的HTTPHandler?
我不确定为什么你需要Web服务部分。
你可以使用一个HTTPHandler来生成这个图像,这可以很好地工作。只需实例化您的图表对象并将其写入输出流。
有关从网络保存到流中的一些示例代码。
Response.ContentType = "image/png";
//Response.AddHeader("Content-Disposition", "attachment; filename=test.png"); // You only want this to save as attachment
Chart4.SaveImage(Response.OutputStream, ChartImageFormat.Png);
Response.End();
这让我朝着正确的方向前进。我发现以下链接有用http://www.4guysfromrolla.com/articles/093009-1.aspx http://stackoverflow.com/questions/46788/how-to-bind-a-memorystream-to-aspimage-control 。我创建了一个返回从MS Chart控件创建的内存流的页面,然后添加了一个带有我上一页的ImageUrl的asp:图像。我不需要将图像图表存储在网络服务后面 – Keith
听起来不错。我要补充的一件事是,对于页面而言,您拥有页面生命周期的全部开销,而对于HTTPHandler,您当然不需要 - 因此为什么它是实现自定义图像的首选方法等等,但取决于您的要求。 –