Есть asmx веб-сервисы.
Создаю программу которая по расписанию вызывает веб методы и сохраняет результаты в лог файл.
Все параметры методов находятся в xml
Какие есть способы вызова веб методов без использования Web Reference ?
public string CallRemoteWebService()
{
string ResponseText = "";
string WebServiceUrl = "localhost/overviewmaster/services/ws.asmx"; // url сервиса
string WebMethodName = "GetOverviewData"; //название метода
string value = "{method: 'GetTypList'}"; //значение входных параметров метода
string argument = string.Format("{0}", value); //входные параметры
using (WebClient client = new WebClient())
{
client.Headers.Add("Content-Type", "text/xml; charset=utf-8");
var payload = string.Format(@"<?xml version=""1.0"" encoding=""utf-8""?>
<{0} xmlns=""microsoft.com/webservices"">{1}{0}>
", WebMethodName, argument);
var data = Encoding.UTF8.GetBytes(payload);
var result = client.UploadData(WebServiceUrl, data);
ResponseText = Encoding.Default.GetString(result);
}
return ResponseText;
}
Но появляется ошибка :
An unhandled exception of type 'System.Net.WebException' occurred in System.dll
Additional information: Удаленный сервер возвратил ошибку: (500) Внутренняя ошибка сервера.
в строке var result = client.UploadData(WebServiceUrl, data);