我们正在将我们的站点从 SP2007 迁移到 SP2010。我们的解决方案中包含一个 Web 服务,它包含在一个 .ASMX 文件中。我知道我们应该使用 WCF,但是我们没有时间将这个 Web 服务转换为使用它,而且这个项目是从该公司的一位前开发人员那里继承的,所以我们仍在尝试理解这个代码的架构。
我们遇到的问题是,当我们调用服务时收到警告,说明“此 Web 服务正在使用http://tempuri.org/作为其默认命名空间”。
我们已经在 Web 服务的定义中更改了命名空间属性,如下所示:
[WebService(Namespace = "http://localhost")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class searchService : WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public resultWrapper search(string query)
{
....
}
}
但是,当我们查看 Web 服务的 WSDL 时,我们会得到以下信息:
<wsdl:definitions targetNamespace="http://tempuri.org"><wsdl:types/><wsdl:service
name="search"/></wsdl:definitions>
我们已经撤回了原始解决方案,执行了“干净的解决方案”操作并重新部署了解决方案,但到目前为止没有任何效果。我们不知道我们需要做什么来强制 WSDL 根据我们在 Web 服务定义中提供的名称空间进行自我更新,或者如果有其他地方我们需要修改 WSDL 信息更新的设置。