【问题标题】:WSDL for namespace still using "tempuri.org"名称空间的 WSDL 仍在使用“tempuri.org”
【发布时间】:2013-01-12 07:34:14
【问题描述】:

我们正在将我们的网站从 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 信息更新的设置。

【问题讨论】:

    标签: .net web-services namespaces wsdl asmx


    【解决方案1】:

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

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

    基本上,codeBehind 属性需要指向我们的 .asmx.cs 文件,而 Class 属性需要正确匹配我们正在使用的命名空间和类。由于指向 SharePoint 默认命名空间和类,因此引发错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-03
      • 2010-12-05
      • 2021-06-27
      • 2015-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多