我的asmx webservice在本地工作,但在远程IIS 7上部署时则不行

时间:2010-09-25 14:11:27

标签: c# asp.net

我已经使用visual studio开发了一个asmx webservice,我通过复制所有文件在IIS 7上部署了3.5 Framework。

测试时说

  

无法加载文件或程序集   “System.Web.Extensions程序,   版本= 1.0.61025.0,文化=中立,   PublicKeyToken = 31bf3856ad364e35'或   其中一个依赖项。系统   找不到指定的文件。

我不使用[System.Web.Script.Services.ScriptService],所以我不明白为什么它会尝试加载System.Web.Extensions。

所以我将Visual Studio从.NET 2更改为3.5,但又出现了另一个错误:

  

无法加载文件或程序集   'WebServiceTest'或其中一个   依赖。试图做到   加载程序不正确   格式。

如何解决这个问题?

注意:我没有使用任何其他程序集/ lib我只是学习webservice所以它非常简单:我创建了一个Web服务Test.asmx,其中一个方法在同一名称空间WebServiceTest中使用一个类Test.cs。这在当地有效。

最后我再次从头开始,现在它可以正常工作,我认为我通过重命名命名空间,类等等而不匹配。

2 个答案:

答案 0 :(得分:1)

也许您正在使用依赖System.Web.Extensions的第三方程序集。确保显式或隐式地未在项目中引用此程序集。通常,此程序集的版本是3.5.0.0。从错误消息看,您的项目似乎使用版本1.0.61025.0,这是一个旧版本。尝试查看每个引用的程序集以查看使用此旧版本的内容。您可能需要将其部署在目标服务器上。

答案 1 :(得分:1)

服务器是否安装了网络扩展程序?我认为它们是4.0之前的额外安装。或者:您是否也以正确的版本复制System.Web.Extensions.dll?在您的计算机上,它可能位于GAC中,而不是在bin文件夹中。

也就是说,你不应该使用它 - 使用WCF来公开从.NET 3.5开始的Web服务。你基本上培养过时/退休的技术。