我已经阅读了很多有关此内容的帖子并且收到了相互矛盾的信息 - 我正试图“归结”其他人提出的一些问题,希望在网络上某处可以找到一个明确的答案:-)
我正在为我的PC编写.NET应用程序,该应用程序连接到运行ASP.NET的IIS Web服务器。 Web服务器有两种类似的方法:
[WebMethod]
public byte [] GetFile(string file)
{
// simplified
return File.ReadAllBytes(file);
}
[WebMethod]
public void PutFile(string file, byte [] data)
{
// simplified
return File.WriteAllBytes(file, data);
}
在客户端上,我想使用大小约为4MB的缓冲区调用GetFile / PutFile。
BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.None);
binding.AllowCookies = true;
binding.OpenTimeout = ???;
binding.MaxBufferSize = ???;
binding.MaxReceivedMessageSize = ???;
onlineTransport = new RemoteObject.RemoteObjectSoapClient(binding, new EndpointAddress(BaseUrl + "/page.asmx"));
// Read a file
byte [] foo = onlineTransport.GetFile("foo.file");
// Write a file
onlineTransport.PutFile("bar.file", foo);
要求
问题
编码:我将发送大量这些内容并且通过线路发送的字节数很重要 - 是否可以在通过HTTP使用Web服务时使用二进制消息编码或MTOM编码?
设置:当我发送时,有许多最大请求和&遇到的超时值。我想了解我正在做什么以及如何在代码中设置它们(而不是.config文件)。什么是GREAT是一个层模型(jpeg),显示每个超时和最大值适用的位置。例如,通过SOAP发送大型数组与最大邮件大小不同。
STREAMING / BUFFERING:如果二进制blob大小<4MB,则需要流式传输吗?数据很容易从文件系统读取/写入,不会动态生成数据。如果内存命中只有4MB我很高兴,我担心4MB可能在各种缓冲发生后出现气球? - 我想更好地了解最新情况
一些研究材料: http://msdn.microsoft.com/en-us/library/ms733742.aspx
答案 0 :(得分:-1)
根据您的代码,您使用的是ASP.NET Web服务,因此您无法使用MTOM,二进制编码或流式传输。
对于WCF服务: