Код сервиса:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
[SoapDocumentMethod("Ping")]
public string Ping(string pingString)
{
return pingString;
}
}
Прокси, для вызова метода Ping у веб-сервиса:
[WebServiceBinding("PingServer.Service1")]
public class PingServiceProxy : SoapHttpClientProtocol
{
public PingServiceProxy()
{
base.Url = "http://localhost:53366/Service1.asmx";
}
[WebMethod]
[SoapDocumentMethod("Ping")]
public string Ping(string pingString)
{
return (string)base.Invoke("Ping", new object[] { pingString })[0];
}
}
Сам вызов:
using (PingServiceProxy proxy = new PingServiceProxy())
{
Console.WriteLine(proxy.Ping("Hello, World!"));
}
Вызов проходит нормально, прокси обращается к сервису, но в метод вместо строки приходит null, не могу понять причину. Причем если вызывать метод, например, из браузера, параметр приходит нормально. Т.е. косяк получается в реализации прокси.
Предлагать использование WCF или других способов не стоит, нужна реализация именно таким образом (и именно на .net не выше второго Framework)