1

我有一个调用 Web 服务来检查更新的 winform 应用程序。这适用于开发,它也适用于我尝试过的其他任何地方,只是不适用于我机器上已安装的副本(这在开发中恰好是相同的)。

错误是:

无法执行程序。正在执行的命令是 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe" /noconfig /fullpaths @"C:\Documents and Settings\Giovanni.DOUBLE-AFSSZ043\Local Settings\Temp\squ8oock .cmdline”。

防火墙已禁用,我查找了“C:\Documents and Settings\Giovanni.DOUBLE-AFSSZ043\Local Settings\Temp\squ8oock.cmdline”,但它不存在。请注意,每次我尝试使用 Web 服务时,“.cmdline”文件都是不同的,例如,我第二次运行它是“dae8rgen.cmdline”。不管它有什么名字,我永远找不到这个文件。

有什么建议么?

4

4 回答 4

6

我遇到了同样的问题,发现我的内存已经用完了。

检查 Redhats “ANTS Memory Profiler”后,我发现我在 GC 根目录的 COM+ 中有大量内存。一个快速的谷歌,我发现自己在这里:msdn XmlSerializers

然后我阅读了以下内容:

如果您使用任何其他构造函数,则会生成同一程序集的多个版本并且永远不会卸载,这会导致内存泄漏和性能下降。最简单的解决方案是使用前面提到的两个构造函数之一。否则,您必须将程序集缓存在哈希表中...

在为序列化程序创建哈希表之后,我的内存泄漏(和性能不佳)问题以及像您这样的错误消息都消失了。

于 2009-08-14T05:36:50.217 回答
2

“.cmdline”文件是由 .NET 框架生成的自动生成文件。该应用程序正在尝试实时编译用于解析来自 Web 服务的数据的 XML 序列化器。

您是否确认可以从命令行窗口执行“csc.exe”?即使只是输入“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe /?” 应该给你一个编译器选项列表(或者如果你没有执行它的权限,应该给你一个错误)。

您在哪个用户帐户下运行它,它是否有权执行 windows 目录中的 .exe 文件?同样,我知道你说这发生在你机器上安装的副本上,但它是否有可能在网络共享上执行并接收有限的代码访问安全权限,这会阻止它运行本地可执行文件?

作为参考,这里有一篇 KB 文章,显示了当用户帐户没有足够权限时在 ASP.NET 中可能发生的类似错误。 http://support.microsoft.com/kb/315904

于 2008-09-15T12:36:07.810 回答
1

我用 ISSReset 解决了同样的问题

于 2011-10-19T09:21:58.757 回答
0

如果强制执行 AppLocker,请在下方允许(添加为路径异常)

c:\windows\MICROSOFT.NET\FRAMEWORK\V2.0.50727\CSC.EXE c:\windows\MICROSOFT.NET\FRAMEWORK\V2.0.50727\CVTRES.EXE

于 2017-11-29T07:41:29.707 回答