Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В примере ASMX показано, как интегрировать клиентское приложение Windows Communication Foundation (WCF) с существующей веб-службой ASMX.
Замечание
Процедура установки и инструкции по сборке для этого примера находятся в конце этого раздела.
Этот пример состоит из клиентской консольной программы (.exe) и библиотеки служб (.dll), размещенной службами IIS. Служба — это веб-служба ASMX, реализующая контракт, определяющий шаблон связи с ответом на запрос. Служба предоставляет математические операции (Add, Subtract, Multiply и Divide). Клиент выполняет синхронные запросы на математические операции, а служба отвечает с результатом. Действие клиента отображается в окне консоли.
Реализация веб-службы ASMX, показанная в следующем примере кода, вычисляет и возвращает соответствующий результат.
[WebService(Namespace="http://Microsoft.ServiceModel.Samples")]
public class CalculatorService : System.Web.Services.WebService
{
[WebMethod]
public double Add(double n1, double n2)
{
return n1 + n2;
}
[WebMethod]
public double Subtract(double n1, double n2)
{
return n1 - n2;
}
[WebMethod]
public double Multiply(double n1, double n2)
{
return n1 * n2;
}
[WebMethod]
public double Divide(double n1, double n2)
{
return n1 / n2;
}
}
Согласно настройке, доступ к службе может быть получен с http://localhost/servicemodelsamples/service.asmx клиентом на том же компьютере. Для клиентов на удаленных компьютерах для доступа к службе необходимо указать полное доменное имя вместо localhost.
Обмен данными осуществляется с помощью клиента, созданного средством служебной программы метаданных ServiceModel (Svcutil.exe). Клиент содержится в файле generatedClient.cs. Служба ASMX должна быть доступна для создания прокси-кода, так как она используется для получения обновленных метаданных. Выполните следующую команду из командной строки в клиентском каталоге, чтобы создать типизированный прокси-сервер.
svcutil.exe /n:http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples http://localhost/servicemodelsamples/service.svc?wsdl /out:generatedClient.cs
Используя созданный клиент, можно получить доступ к конечной точке службы, настроив соответствующий адрес и привязку. Как и служба, клиент использует файл конфигурации (App.config) для указания конечной точки для взаимодействия. Конфигурация конечной точки клиента состоит из абсолютного адреса конечной точки службы, привязки и контракта, как показано в следующем примере конфигурации.
<client>
<endpoint
address="http://localhost/ServiceModelSamples/service.asmx"
binding="basicHttpBinding"
contract="Microsoft.ServiceModel.Samples.CalculatorServiceSoap" />
</client>
Реализация клиента создает экземпляр сгенерированного клиента. Затем созданный клиент можно использовать для взаимодействия со службой.
// Create a client.
CalculatorServiceSoapClient client = new CalculatorServiceSoapClient();
// Call the Add service operation.
double value1 = 100.00D;
double value2 = 15.99D;
double result = client.Add(value1, value2);
Console.WriteLine("Add({0},{1}) = {2}", value1, value2, result);
// Call the Subtract service operation.
value1 = 145.00D;
value2 = 76.54D;
result = client.Subtract(value1, value2);
Console.WriteLine("Subtract({0},{1}) = {2}", value1, value2, result);
// Call the Multiply service operation.
value1 = 9.00D;
value2 = 81.25D;
result = client.Multiply(value1, value2);
Console.WriteLine("Multiply({0},{1}) = {2}", value1, value2, result);
// Call the Divide service operation.
value1 = 22.00D;
value2 = 7.00D;
result = client.Divide(value1, value2);
Console.WriteLine("Divide({0},{1}) = {2}", value1, value2, result);
//Closing the client gracefully closes the connection and cleans up resources.
client.Close();
Console.WriteLine();
Console.WriteLine("Press <ENTER> to terminate client.");
Console.ReadLine();
При запуске примера запросы и ответы операции отображаются в окне консоли клиента. Нажмите клавишу ВВОД в окне клиента, чтобы завершить работу клиента.
Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714
Press <ENTER> to terminate client.
Настройка, сборка и запуск примера
Убедитесь, что вы выполнили процедуру настройки One-Time для образцов Windows Communication Foundation.
Чтобы создать версию решения на C# или Visual Basic .NET, следуйте инструкциям по сборке примеров Windows Communication Foundation .
Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в запуска примеров Windows Communication Foundation.