C# 如何将HTTP请求内容异步写入文件?
我使用Ajax请求在HTTP正文中传递一些数据。可以使用Request.InputStream访问服务器上的这些内容。现在我想将它异步写入服务器磁盘上的文件。怎么做 如果使用HTTP发送的数据更多,那么我不希望服务器应用程序死亡/受到影响。所以我想异步编写它 以下是关于我尝试做什么的参考样本C# 如何将HTTP请求内容异步写入文件?,c#,.net,asp.net,http,C#,.net,Asp.net,Http,我使用Ajax请求在HTTP正文中传递一些数据。可以使用Request.InputStream访问服务器上的这些内容。现在我想将它异步写入服务器磁盘上的文件。怎么做 如果使用HTTP发送的数据更多,那么我不希望服务器应用程序死亡/受到影响。所以我想异步编写它 以下是关于我尝试做什么的参考样本 System.IO.Stream str; // Create a Stream object. str = Request.InputStream; // TO DO Write it to file
System.IO.Stream str;
// Create a Stream object.
str = Request.InputStream;
// TO DO Write it to file asyncronously ...
str.Write(someFile, 0, strLen);
Stream.BeginWrite和Stream.EndWrite是需要查看的内容 一种方法是,假设您很高兴不能控制流的读取(即,您相信其他事情会发生,或者很高兴它不会发生,或者不会完全发生),则使用“虚拟流” 如果您创建了一个类来“包装”您希望使用的流,并将所有调用传递给该底层流,那么您可以在read方法中钩住自己的逻辑,这样当调用流的read方法时,您就可以从底层流中读取、写入自己的流,然后将其传递回去 这不是100%异步的,因为流的读取器会等待直到您将缓冲区写入文件,然后再接收缓冲区,但它不会强制读取器等待直到您读取了整个流,并且也可以很好地处理不可查找的流
我用完整的源代码编写了一个与此相关的BizTalk,如果您愿意忽略BizTalk位,那么流实现将在此处详细讨论在编写文件时,您想做什么?有些东西告诉我您错了,所有正确的HTTP服务器都是多线程的,因此,无论请求运行多长时间,其他服务器都是多线程的任务也可以并行执行