Asp.net 是否从WCF服务返回pdf文件?

Asp.net 是否从WCF服务返回pdf文件?,asp.net,wcf,Asp.net,Wcf,我有一个WCF服务,我想使用它的一个服务方法来访问pdf文件并将其转换为流或其他东西,然后将流返回到我的web应用程序,在那里我将把该流转换回pdf文件 将pdf转换为流或字节[]数组,哪种方法更好 这是我的方法 public byte[] GetPdf(string Address) { byte[] bytes = System.IO.File.ReadAllBytes(Address); return bytes } 现在在我调用这个WCF服务的web应用程序中,我

我有一个WCF服务,我想使用它的一个服务方法来访问pdf文件并将其转换为流或其他东西,然后将流返回到我的web应用程序,在那里我将把该流转换回pdf文件

将pdf转换为
字节[]
数组,哪种方法更好

这是我的方法

 public byte[] GetPdf(string Address)
 {
    byte[] bytes = System.IO.File.ReadAllBytes(Address);
    return bytes
 }
现在在我调用这个WCF服务的web应用程序中,我想使用这些字节并将它们转换回pdf。这是正确的方法吗?因为我不确定以流形式返回文件是正确的还是以字节[]形式返回是正确的

但是当我运行服务进行测试时,我得到了一个错误

已超过传入邮件的最大邮件大小配额(65536)。要增加配额,请在相应的绑定元素上使用MaxReceivedMessageSize属性

我如何解决这个问题,我没有添加任何绑定或任何东西,因为我是WCF的新手,所以一切都是默认的

引用“作者Juval Lowy”一书:

默认情况下,当客户端和服务交换消息时, 这些消息在接收端缓冲并传递 只有在收到整个消息之后。这是真的 无论是客户端向服务发送消息还是 向客户端返回消息的服务。因此,当 客户端调用服务,只有在 客户信息已全部收到;同样地 客户端仅在返回结果为的消息时解除阻止 调用已全部收到。足够 小消息,这种交换模式提供了一个简单的程序- ming模型,因为接收消息引起的延迟为 与消息处理本身相比,通常可以忽略不计。 然而,当涉及到更大的消息时,例如涉及 多媒体内容、大文件或成批数据—直到 接收到的整个消息可能不实际。处理 在这种情况下,WCF支持接收方(无论是客户端还是客户端) 服务)在消息发送时开始处理消息中的数据 频道仍在接收。这种类型的处理是 称为流传输模式。具有大的有效负载、流媒体 提供了改进的吞吐量和响应能力,因为 正在发送消息时,接收端或发送端均被阻止 发送或接收

对于传输文件,建议使用具有异步模式的流

 [ServiceContract(SessionMode = SessionMode.NotAllowed)]
    public interface ITerrasoftFiles
    {
        [OperationContract(AsyncPattern = true)]
        IAsyncResult BeginGetFiles(Guid ID, AsyncCallback asyncCallBack, object asyncState);

        Stream EndGetFiles(IAsyncResult res);

        [OperationContract]
        FileInfo GetFileInfo(Guid ID);
    }
并在Web.config中设置transferMode=“streamdresponse”

<bindings>
      <netTcpBinding>
        <binding name="tcpTerrasoftFiles" transferMode="StreamedResponse">
          <security mode="None" />
        </binding>
      </netTcpBinding>
</bindings>
 <services>
    <service name="TWebServices.Services.TerrasoftFiles">
      <endpoint address="" 
                  binding="netTcpBinding" bindingConfiguration="tcpTerrasoftFiles" 
                  contract="TWebServices.Services.ITerrasoftFiles" />
      <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
     </service>
 </services>

可能重复的我看不到这是邮件大小配额问题的重复。。。对此的答案可以而且应该是不同的。但这与另一个问题类似……可能是重复的