时间:2010-03-26 07:54:45

标签: c#

我有一个带有代理类的应用程序用于我的webservice - 这在所有32位机器上都能正常工作。但是,相同的应用程序在Windows Server 2008 64位计算机中引发异常。看起来无法为Web服务生成临时类。事件查看器中的错误是“错误CS0008:从文件中读取元数据时出现意外错误” - “错误密钥”。 这是调用堆栈......    在System.Xml.Serialization.Compiler.Compile(Assembly parent,String ns,XmlSerializerCompilerParameters xmlParameters,Evidence evidence)    在System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping [] xmlMappings,Type [] types,String defaultNamespace,Evidence evidence,XmlSerializerCompilerParameters parameters,Assembly assembly,Hashtable assemblies)    在System.Xml.Serialization.TempAssembly..ctor(XmlMapping [] xmlMappings,Type [] types,String defaultNamespace,String location,Evidence evidence)    在System.Xml.Serialization.XmlSerializer.GetSerializersFromCache(XmlMapping []映射,类型类型)    在System.Xml.Serialization.XmlSerializer.FromMappings(XmlMapping []映射,类型类型)    在System.Web.Services.Protocols.SoapClientType..ctor(类型类型)    在System.Web.Services.Protocols.SoapHttpClientProtocol..ctor()    在Fusion.ServiceCatalogProxy..ctor()

我无法获得有关此错误密钥错误的任何信息....

2 个答案:

答案 0 :(得分:0)

看起来您引用的程序集之一是corrupted

答案 1 :(得分:0)

如果您的构建配置类型是“AnyCPU”,那么有时访问那些仅适用于32位接口的com对象有时会产生问题,请尝试使用x86重新构建您的应用程序/项目,然后在64位机器上任何32位程序将起作用完全相同。

通过查看错误,我可以看到在64位机器上,临时文件夹可能放在不同的位置,而你的32位程序找不到它。