【问题标题】:Getting a PDF from WCF to WCF将 PDF 从 WCF 获取到 WCF
【发布时间】:2011-08-23 15:58:51
【问题描述】:

好的,这就是我的...

在一台服务器上,一个托管在 IIS 中的 WCF。这个为驻留在同一服务器上的 ASP.NET 应用程序处理一堆东西(主要是 db 调用)。在 ASP 应用程序中,有一个嵌入的 iFrame,其中包含一个 PDF 文档查看器。

在另一台服务器上,在 Windows 服务中托管的 WCF。这个处理来自第一个 WCF 的调用并启动生成 PDF 文件的第三方文档程序。目前,我在 C:\ 驱动器上有一个虚拟 PDF 文件可供使用。

我的任务:以某种方式在 WCF #2 中拥有一个函数,将 PDF 文档的副本返回到 WCF #1,这会将其保存到本地 ASP 应用程序目录,因此嵌入式查看器可以显示给用户。

到目前为止,我已经尝试让 WCF #2 返回一个 FileStream 对象,但那里没有运气。我想这在 WCF 世界中是一个很大的禁忌(我是菜鸟)。

我不知道如何做到这一点,我的大部分努力都被证明是徒劳的。你会如何处理这个?有人吗?

谢谢!

【问题讨论】:

    标签: vb.net wcf pdf stream


    【解决方案1】:

    让 WCF2 获取 PDF 并将其作为字节数组返回:

       // fs is your FileStream
       byte[] Data = new byte[fs.Length];
       fs.Read(Data,0,fs.Length);
    

    WCF1 调用 WCF2 并读取字节数组,然后将其保存到磁盘

    FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite);
    BinaryWriter bw = new BinaryWriter(fs);
    bw.Write(buff);
    bw.Close(); 
    

    【讨论】:

      【解决方案2】:

      谢谢,杰森——我做了类似的事情。以为我会为下一个人发帖:

      WCF #2:

      Public Function GetPDF_Byte() As Byte() Implements IService1.GetPDF_Byte
          Dim fs As New FileStream("C:\211LD.pdf", FileMode.Open, FileAccess.Read)
      
          Dim ImageData As Byte() = New Byte(fs.Length - 1) {}
      
          fs.Read(ImageData, 0, System.Convert.ToInt32(fs.Length))
      
          fs.Close()
      
          GetPDF_Byte = ImageData
      End Function
      

      WCF #1 调用 #2 并将文件写入磁盘:

      Sub Main
          Dim WCF As New ServiceReference1.Service1Client
          Dim ByteData As Byte()
          Dim oFileStream As System.IO.FileStream
      
          ByteData = WCF.GetPDF_Byte
          oFileStream = New System.IO.FileStream("C:\NewPDF.pdf", FileMode.Create)
          oFileStream.Write(ByteData, 0, ByteData.Length)
          oFileStream.Close()
      End Sub
      

      希望可以帮助别人!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-18
        • 1970-01-01
        • 1970-01-01
        • 2011-08-25
        相关资源
        最近更新 更多