我可以通过访问它在Web浏览器调用服务器上我的web服务,但是当我通过把它称为“类型‘System.ComponentModel.INotifyPropertyChanging’在没有引用的组件定义”来自我的测试客户端的Soap客户端,我得到以下异常:错误调用webservice时:
“类型'System.ComponentModel.INotifyPropertyChanging'在未引用的程序集中定义,必须添加对程序集'System,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'。“
..rest堆栈跟踪的是以下。
at System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence)
at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies)
at System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence)
at System.Xml.Serialization.XmlSerializer.FromMappings(XmlMapping[] mappings, Type type)
at System.Web.Services.Protocols.SoapServerType..ctor(Type type, WebServiceProtocols protocolsSupported)
at System.Web.Services.Protocols.SoapServerProtocol.Initialize()
at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)
--- End of inner exception stack trace ---
现在我已将此System.dll作为参考添加到我的Web服务项目中,并将其设置为复制到本地。该dll不在服务器上的GAC中(但位于我的开发服务器上) - 是否会成为问题?
我在web.config中的以下部分:
<add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<add assembly="Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add assembly="System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
我不明白这一点?如果dll位于bin文件夹中,并且该引用以及被添加到我的项目中,它在抱怨什么?
这些都是在我的bin文件夹中的dll:
Devart.Data.dll
Devart.Data.Linq.dll
Devart.Data.Oracle.dll
Devart.Data.Oracle.Linq.dll
Oracle.DataAccess.dll
System.ComponentModel.Composition.dll
System.ComponentModel.DataAnnotations.dll
System.Configuration.dll
System.Data.dll
System.Data.Entity.dll
System.dll
System.Runtime.Serialization.dll
System.Web.dll
System.Web.Services.dll
System.Xml.dll
我真的难倒了,没有人知道为什么我收到这个错误?在您的项目,看看你的引用,看看对System.Dll参考的路径
在您的项目,看看你的引用,看看对System.Dll参考的路径,在路径表明您引用的GAC版本或箱版本?如果路径指向GAC版本,则需要删除引用并将引用读取到bin版本。 –
迪伦,我相信它引用的GAC版本,但选择复制到本地并将其放入到bin文件夹,你是说把它作为有我的项目的一部分,然后直接将其指向的参考?这肯定会有帮助,因为我可能无法将它添加到服务器上的gac。我不知道这个工作是否会在星期一开始,但请把它当作潜在的答案,这样我就可以接受了!谢谢! –
是的,它保留下来,并引用它,而不是GAC版本,它会与你的项目旅行,当你部署,它会在服务器 –