C# 将参数传递给大于标准大小的进程



我正在通过程序集在C#中创建自定义进程System.Diagnostics.Process。我需要将参数传递给进程,并且能够通过process.StartInfo.Arguments API做到这一点。但是,当参数大小很大时,我会收到异常.看起来它不允许超出进程参数的某个限制。有没有办法/调整以某种方式创建一个进程,以便它可以接受任何大小的参数(不希望在数据库中保留参数(?

来自文档

包含要传递给目标的参数的单个字符串 在"文件名"属性中指定的应用程序。默认值为 空字符串 ("(。在 Windows Vista 和早期版本的 Windows 操作系统中,将参数的长度添加到 进程的完整路径的长度必须小于 2080。上 Windows 7及更高版本,长度必须小于32699。

我认为没有办法避免这种限制

解决方法可能是将 args 写入临时文件并传递该文件的路径。

什么论点这么长?您是否在参数中传递数据?

您可以尝试压缩数据并作为 base64 字符串传递。假设这些过程是您自己的。

否则,您可能希望查看 WCF,您将在其中承载 IIS 中的进程或作为 Windows 服务承载进程,使您能够调用其方法传递所需的任何数据。

最新更新