Задание реализовать перегруженный метод.
Пишем как обычно
[WebMethod]
public void method (int a, int b)
{}
[WebMethod]
public void method(int a)
{}
Запускаем дебаг, и получаем ошибку
Both System.Data.DataTable GetDictionary(System.String) and System.Data.DataTable GetDictionary(System.String, System.String) use the message name 'GetDictionary'. Use the MessageName property of the WebMethod custom attribute to specify unique message names for the methods.
Причину ошибки можно понять открыв http://<адрес вашего сервиса>/service1.asmx?WSDL.
У сообщений(message) которые посылает сервис одинаковое имя.
Что бы исправить ошибку нужно добавить атрибуты:
[WebMethod(MessageName = "method2args",Description = "method with 2 args",EnableSession = true)]
public void method (int a, int b)
{}
[WebMethod(MessageName = "method1arg",Description = "method with 1 arg",EnableSession = true)]
public void method(int a)
{}
Если ваш сервис использует .net 2.0 и выше то вы все равно получите ошибку:
Service '<name of service>' does not conform to WS-I Basic Profile v1.1. Please examine each of the normative statement violations below.
Нужно поправить еще 1 атрибут:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.None)]