Web Service 函数重载

1. 错误的写法
[WebService(Namespace = "http://192.192.15.131/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class UserWebService : System.Web.Services.WebService

{
     [WebMethod]
     public string HelloWorld()
     {
          return "HelloWorld";
     }

     [WebMethod]
     public string HelloWorld(string name)
     {
          return "HelloWorld " + name;
     }
}

运行,提示错误:

服务“UserWebService”不符合 WS-I Basic Profile v1.1。请检查下面的每个标准化声明冲突。要关闭一致性检查,请将相应 WebServiceBinding 特性上的 ConformanceClaims 属性设置为 WsiClaims.None。
R2304: 配置文件不允许在 wsdl:portType 中进行操作名重载。说明中的 wsdl:portType 必须具有操作,且每个操作的 name 属性各不相同。注意,此要求仅适用于给定 wsdl:portType 中的 wsdl:operations。wsdl:portType 可能具有与其他 wsdl:portTypes 中发现的同名 wsdl:operations。
- 来自命名空间“http://192.192.15.13/”的 portType“UserWebServiceSoap”上的操作“AddPerson”。
要使服务一致,请确保属于同一绑定的所有 Web 方法具有唯一名称。


2.解决方法

     通过在方法中添加一个MessageName属性,并将类的WebServiceBinding 属性中ConformsTo 指定为WsiProfiles.None。

     具体写法:

[WebService(Namespace = "http://192.192.15.131/")]
[WebServiceBinding(ConformsTo = WsiProfiles.None)]
public class UserWebService : System.Web.Services.WebService

{
     [WebMethod]
     public string HelloWorld()
     {
          return "HelloWorld";
     }

     [WebMethod(MessageName="HelloWorldWithName")]
     public string HelloWorld(string name)
     {
          return "HelloWorld " + name;
     }


运行结果:

UserWebService

支持下列操作。有关正式定义,请查看服务说明。

    * HelloWorld

    * HelloWorld
      MessageName="HelloWorldWithName"

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值