2010-03-26 69 views
1

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

我不能够获得有关这个坏键错误任何信息....

回答

0

它看起来像您引用的组件之一是corrupted

+0

相同的构建工作在其他机器 - 例如Server 2003 32位。有什么方法可以知道确切的问题 – sac 2010-03-26 08:08:47

+0

您的机器是x64吗? – 2010-03-26 08:32:12

0

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

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