代码之家  ›  专栏  ›  技术社区  ›  Giovanni Galbo

使用WinForm应用程序中的Web服务时出错-“无法执行程序…”

  •  1
  • Giovanni Galbo  · 技术社区  · 16 年前

    我有一个WinForm应用程序调用Web服务来检查更新。这在dev中有效,在我尝试过的其他任何地方也同样有效,只是在我的机器上安装的拷贝上不适用(dev中恰好相同)。

    错误是:

    无法执行程序。正在执行的命令是“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 回复  |  直到 7 年前
        1
  •  2
  •   Aaron Lerch    16 年前

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

    您是否确认可以从命令行窗口执行“csc.exe”?甚至只需键入“c:\windows\microsoft.net\framework\v2.0.50727\csc.exe/?”应该给你一个编译器选项列表(或者如果你没有执行它的权限,应该给你一个错误)。

    您在哪个用户帐户下运行此帐户,它是否具有在Windows目录中执行.exe文件的权限?类似地,我知道您说过在您的计算机上安装的副本会发生这种情况,但它是否可能正在执行网络共享,并接收有限的代码访问安全权限,从而阻止它运行本地可执行文件?

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

        2
  •  5
  •   Tim B    9 年前

    我也有同样的问题,发现我的记忆力有点耗尽了。

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

    然后我读了以下内容:

    如果你用其他的 构造函数,多个版本的 生成相同的程序集 卸载,从而产生内存 泄漏和性能差。最容易 解决方案是使用 前面提到过两个构造器。 否则,必须缓存 哈希表中的程序集…

    在为序列化程序创建了一个哈希表之后,我的内存泄漏(以及性能不佳)问题和由此产生的错误消息(如您的)就消失了。

        3
  •  1
  •   Liath Marco    13 年前

    我用ISSReset解决了同样的问题

        4
  •  0
  •   Ivan Chau    7 年前

    如果强制使用AppLocker,请在下面允许(添加为路径异常)

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