.net WebMethod调用在客户端上导致OutOfMemoryException。结果可以直接写入硬盘吗?

.net WebMethod调用在客户端上导致OutOfMemoryException。结果可以直接写入硬盘吗?,.net,web-services,out-of-memory,.net,Web Services,Out Of Memory,我正在调用.net Web服务上的WebMethod。它可以拉入足够的数据,在客户端上导致OutOfMemoryException,因为它超过了Windows进程允许的2GB限制 由于最后期限的关系,我不想通过添加代码将调用分割成更小的块来解决这个问题。我可以在客户端上使用LargeAddressware标志,但客户端的进程仍有一个限制(3GB-4GB)。在这一点上,我只能说这会更好,但我不能说这永远就足够了(客户端是一个WinForm,将通过CD向客户发布,所以我只能尝试一次) 最好的方法是调

我正在调用.net Web服务上的WebMethod。它可以拉入足够的数据,在客户端上导致OutOfMemoryException,因为它超过了Windows进程允许的2GB限制

由于最后期限的关系,我不想通过添加代码将调用分割成更小的块来解决这个问题。我可以在客户端上使用LargeAddressware标志,但客户端的进程仍有一个限制(3GB-4GB)。在这一点上,我只能说这会更好,但我不能说这永远就足够了(客户端是一个WinForm,将通过CD向客户发布,所以我只能尝试一次)

最好的方法是调用WebMethod,将方法的结果直接写入硬盘上的文件,而不是写入.NET代码中的变量。然后,我可以从文件中一次读取一个内存友好的块。据我所知,Web服务没有办法做到这一点


有什么方法可以通过Web服务做到这一点吗?您是否可以想出其他创造性的解决方案来解决我的OOM问题?

您还没有说要写入哪个磁盘。您可以将输出写入服务上的文件夹,并通过文件共享公开该文件夹。然后,您的服务会将服务器上(临时)文件的路径返回到客户端


我想你说的是传统的ASMX服务吧?他们在创建请求和响应消息的多个副本时遇到序列化问题。尝试在客户端上使用“添加服务引用”而不是“添加Web引用”。

您的
WebMethod
的声明是什么样子的?public MyStruct[]MyWebMethod(string,string)MyStruct包含一个字符串,其中包含导致OOME的大量数据。