名称空间的WSDL仍使用“tempuri.org”

时间:2013-01-28 20:45:21

标签: .net web-services namespaces wsdl asmx

我们正在将我们的网站从SP2007迁移到SP2010。我们的解决方案中包含一个包含在.ASMX文件中的Web服务。我知道我们应该使用WCF,但是我们没有时间将此Web服务转换为使用它,而且该项目是从公司的前开发人员继承的,所以我们仍在尝试理解此代码的体系结构。

我们遇到的问题是,当我们调用“此Web服务正在使用http://tempuri.org/作为其默认命名空间的服务时,我们会收到警告。”

Screenshot showing error when invoking web service

我们已经在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信息的设置来更新。

1 个答案:

答案 0 :(得分:0)

我们团队的另一位开发人员已经解决了这个问题。

除了更新.asmx.cs文件中的命名空间之外,还需要更新codeBehind和.asmx页面中的class属性。

基本上,需要将codeBehind属性指向我们的.asmx.cs文件,以及正确匹配我们使用的命名空间和类所需的Class属性。它抛出了一个错误,因为它指向了一个SharePoint默认命名空间和类。