Asp.net 是否从WCF服务返回pdf文件?
我有一个WCF服务,我想使用它的一个服务方法来访问pdf文件并将其转换为流或其他东西,然后将流返回到我的web应用程序,在那里我将把该流转换回pdf文件 将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应用程序中,我
流
或字节[]
数组,哪种方法更好
这是我的方法
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>
可能重复的我看不到这是邮件大小配额问题的重复。。。对此的答案可以而且应该是不同的。但这与另一个问题类似……可能是重复的