Spolupráce s webovými službami ASMX
Ukázka ASMX ukazuje, jak integrovat klientskou aplikaci WCF (Windows Communication Foundation) s existující webovou službou ASMX.
Poznámka:
Postup nastavení a pokyny k sestavení pro tuto ukázku najdete na konci tohoto tématu.
Tato ukázka se skládá z programu konzoly klienta (.exe) a knihovny služeb (.dll) hostované službou Internetová informační služba (IIS). Služba je webová služba ASMX, která implementuje kontrakt, který definuje komunikační vzor žádosti a odpovědi. Služba zveřejňuje matematické operace (Add
, Subtract
, Multiply
a Divide
). Klient provádí synchronní požadavky na matematickou operaci a služba odpoví výsledkem. Aktivita klienta je viditelná v okně konzoly.
Implementace webové služby ASMX zobrazená v následujícím vzorovém kódu vypočítá a vrátí odpovídající výsledek.
[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;
}
}
Jak je nakonfigurováno, může ke službě přistupovat http://localhost/servicemodelsamples/service.asmx
klient na stejném počítači. Pro klienty na vzdálených počítačích pro přístup ke službě musí být místo localhost zadán kvalifikovaný název domény.
Komunikace se provádí prostřednictvím klienta vygenerovaného nástrojem ServiceModel Metadata Utility (Svcutil.exe). Klient je obsažen v souboru generatedClient.cs. Služba ASMX musí být k dispozici pro generování kódu proxy serveru, protože se používá k načtení aktualizovaných metadat. Spuštěním následujícího příkazu z příkazového řádku v klientském adresáři vygenerujte zadaný proxy server.
svcutil.exe /n:http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples http://localhost/servicemodelsamples/service.svc?wsdl /out:generatedClient.cs
Pomocí vygenerovaného klienta můžete získat přístup ke koncovému bodu služby tak, že nakonfigurujete příslušnou adresu a vazbu. Podobně jako služba klient používá konfigurační soubor (App.config) k určení koncového bodu, se kterým má komunikovat. Konfigurace koncového bodu klienta se skládá z absolutní adresy koncového bodu služby, vazby a kontraktu, jak je znázorněno v následující ukázkové konfiguraci.
<client>
<endpoint
address="http://localhost/ServiceModelSamples/service.asmx"
binding="basicHttpBinding"
contract="Microsoft.ServiceModel.Samples.CalculatorServiceSoap" />
</client>
Implementace klienta vytvoří instanci vygenerovaného klienta. Vygenerovaný klient se pak dá použít ke komunikaci se službou.
// 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();
Při spuštění ukázky se požadavky na operace a odpovědi zobrazí v okně konzoly klienta. Stisknutím klávesy ENTER v okně klienta klienta ukončete klienta.
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.
Nastavení, sestavení a spuštění ukázky
Ujistěte se, že jste pro ukázky windows Communication Foundation provedli jednorázovou instalační proceduru.
Pokud chcete sestavit edici C# nebo Visual Basic .NET řešení, postupujte podle pokynů v části Sestavení ukázek windows Communication Foundation.
Pokud chcete spustit ukázku v konfiguraci s jedním nebo více počítači, postupujte podle pokynů v části Spuštění ukázek windows Communication Foundation.