【问题标题】:There was an error in serializing body of message序列化消息正文时出错
【发布时间】:2012-02-05 05:22:45
【问题描述】:

当我在我的电脑上以 VS2010 IDE 或作为 EXE 运行时,它可以工作。但是当我通过调度程序在另一个盒子上运行时,我得到了错误:

There was an error in serializing body of message MyClassSoapIn: 'Unable to generate a temporary class (result=1).
error CS2001: Source file 'C:\WINDOWS\TEMP\xvjzdxjt.0.cs' could not be found
error CS2008: No inputs specified

这可能是权限问题吗?它使用临时文件夹。这会是个问题吗?

【问题讨论】:

    标签: .net wcf visual-studio-2010


    【解决方案1】:

    所以,您可能遇到了与我遇到的类似的问题...

    您看到的错误是因为 VS 在编译和/或运行过程中需要将信息写入临时文件位置,而 VS 没有指定位置的必要权限/权限。

    临时目录由 TEMP(有时是 TMP)环境变量指定。

    WindowsKey + Pause > Advanced System Settings > Environment Variables
    

    请注意,环境变量有 2 个类别,用户和系统。

    您可能已经删除了 USER 变量,只留下了 SYSTEM 变量。

    发生的情况是 VS 查找环境变量 TEMP,找不到 USER 变量的任何值,因此改用 SYSTEM 变量。问题是,VS 对 SYSTEM TEMP 变量指定的位置没有写访问权限。

    因此,要解决此问题,只需重新创建和定义 USER TEMP、TMP 环境变量以使用“%USERPROFILE%\AppData\Local\Temp”的正确值,以便 VS 现在找到并使用正确的位置它具有文件写入权限。

    或者,您可能只想将 TEMP/TMP 指向的位置更改为可以保证您的权利不会成为问题的位置。

    【讨论】:

    • 我的一位同事遇到了同样的问题,这个解决方案对我们有用。在他的情况下,他的临时文件夹位于C:\Windows\Temp 中,很少有应用程序可以访问。 为什么你总是希望你的临时文件夹在你的 Windows 文件夹中呢?糟糕。
    猜你喜欢
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多