我们正在将我们的网站从SP2007迁移到SP2010。我们的解决方案中包含一个包含在.ASMX文件中的Web服务。我知道我们应该使用WCF,但是我们没有时间将此Web服务转换为使用它,而且该项目是从公司的前开发人员继承的,所以我们仍在尝试理解此代码的体系结构。
我们遇到的问题是,当我们调用“此Web服务正在使用http://tempuri.org/作为其默认命名空间的服务时,我们会收到警告。”
我们已经在Web服务定义中更改了namespace属性,如下所示:
[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信息的设置来更新。
答案 0 :(得分:0)
我们团队的另一位开发人员已经解决了这个问题。
除了更新.asmx.cs文件中的命名空间之外,还需要更新codeBehind和.asmx页面中的class属性。
基本上,需要将codeBehind属性指向我们的.asmx.cs文件,以及正确匹配我们使用的命名空间和类所需的Class属性。它抛出了一个错误,因为它指向了一个SharePoint默认命名空间和类。