1

我可以通过在服务器上的 Web 浏览器中访问它来调用我的 Web 服务,但是当我从我的测试客户端通过 Soap 客户端调用它时,我得到以下异常:

“'System.ComponentModel.INotifyPropertyChanging' 类型在未引用的程序集中定义。您必须添加对程序集 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 的引用。”

..其余的堆栈跟踪如下。

   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 ---

现在我在我的 Web 服务项目中添加了这个 System.dll 作为参考,并将其设置为复制到本地。该 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

我真的很难过,有谁知道我为什么会收到这个错误?

4

1 回答 1

0

在你的项目中,看看你的引用,看看system.dll引用的路径,这个路径说明你引用的是GAC版本还是bin版本?如果路径指向 GAC 版本,您将需要删除引用并重新添加对 bin 版本的引用。

于 2013-04-12T18:01:38.080 回答