【发布时间】:2012-02-09 17:54:26
【问题描述】:
我在 VS2010 中开发了一个针对 Framework 4.0 的 Web 应用程序项目。我需要添加对 Web 服务的引用。在我正在开发的同一台机器上,我创建了一个新项目——将目标框架设置为 3.5——并选择了 Web 服务应用程序——并使用默认的 HelloWorld 方法创建了一个 Web 服务。然后我将目标框架更改为 4.0 并将此 Web 服务发布到本地服务器 - http://mylocalserver/myWebService/Service1.asmx 并且,如果我将其放在浏览器中,一切正常 - 显示 Hello World 方法,如果单击它,它会执行好的并显示“Hello World”。
然后我向我的 Web 应用程序项目添加了一个服务引用 - 单击高级并添加了一个 Web 服务引用。在此过程中,发现 Web 服务并报告 Hello World 方法可用。因此,添加 Web 引用,在解决方案中我可以在 Web References - myWebService - Reference.map - Reference.cs - Service1.disco - Service1.wsdl 下看到
然后,如果我尝试构建 Web 应用程序项目,构建会失败。它说'错误 48 无法加载文件或程序集'file:///C:\Development\EVProject\EVProject\bin\AjaxControlToolkit.dll' 或其依赖项之一。不支持操作。 (HRESULT 异常:0x80131515)
如果我删除对 Web 服务的引用 - 一切正常且运行良好。如果我把对 Hello World Web 服务的引用放回 - 它不会构建。把它拿出来,它就可以正常工作了。
知道为什么添加网络引用会阻止它构建吗?感谢您的帮助。
编辑:更多信息...
更多信息。在同一台开发机器上,我有一个网站项目。我刚刚向该项目添加了相同的 Web 引用,并从中调用了 Web 服务。它构建良好 - 并正确调用 Web 服务。
因此,同一台开发机器上的两个应用程序。
VS2010 - 都针对 Framework 4.0
一个是网站项目
另一个是Web应用项目
如果我向两个项目添加相同的 Web 引用,Web 应用程序将不会构建 - 网站项目构建良好并正确调用 Web 服务。那么,谁不会构建 Web 应用程序项目?
【问题讨论】:
-
已删除附加信息并添加到原始问题中。
-
是否与AjaxTookKit有关。据我所知,不同版本的 AjaxTookKit 版本不同。它可能适用于一个但不能适用于另一个,是这样吗?
-
对不起,不明白你的问题。当您说“它与 Ajax Toolkit 相关吗?” .... 与 Ajax Toolkit 有什么关系? Web 应用程序项目引用了 Ajax Toolkit,但可以完美地构建和运行 - 直到我添加对 Web 服务的引用。此时 Web 应用程序将不会构建,说它无法加载 Ajax 程序集。为什么做一些像添加对 Web 服务的引用这样无辜的事情意味着突然间,Ajax Toolkit dll 将无法加载?
-
我的意思是它与 Ajax 相关吗?看起来这可能与您正在使用的 Ajax 库发生冲突。我不能完全进入它,但两个应用程序的版本是否相同?正如你所说,你使用的是 4.0 和 3.5。 Ajax 可能与其中之一兼容,但不能同时与两者兼容。尝试将 .NET 框架更改为可行的框架。
-
Web 服务是为 3.5 创建的并更改为 4.0。 Web 应用程序项目是 Framework 4.0 ajax 工具包 dll 是最新的 - 我不明白为什么添加对具有典型 Hello World 方法的 Web 服务的引用会停止 Web 应用程序的构建。我认为它无法加载 ajax 工具包 dll 的事实可能是一个红鲱鱼。
标签: .net web-services