2

wcf サービスを呼び出すカスタム httphandler があります。By Service は Stream

[OperationContract]
Stream GetMyStream(int width, int height);

イメージタグから aspx ページで http ハンドラーを呼び出しています。

<asp:Image ID="imgStream" runat="server" ImageUrl="MyStreamHandler.ashx" Visible="true" />

私のハンドラーでは、WCF サービスへの参照があり、次のように操作を呼び出しています。

MyServiceClient tcpClient = new MyServiceClient();
Image img = Image.FromStream(tcpClient.GetMyStream(30,100));

サービスで NetTcp バインディングを使用しています。これで、jquery ajax を使用して aspx ページで http ハンドラーを呼び出し、イメージ タグにストリームを表示して、ページでのポスト バックを回避できます。

ありがとう。

4

2 に答える 2

2

ajax を使用する必要はないと思います。以下を使用して、src 内のハンドラーを指すように画像参照を追加できます。

画像タイプは画像と一致する必要があることに注意してください。

public class MyStreamHandler : IHttpHandler {

public void ProcessRequest (HttpContext context) {

    MyServiceClient tcpClient = new MyServiceClient();
    Image img = Image.FromStream(tcpClient.GetMyStream(30,100));
    img.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)  
        img.Dispose()
    }

    public bool IsReusable {
    get {
        return false;
    }
   }
}
于 2013-06-26T20:59:56.077 に答える