Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 IIS (Internet Information Services). 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, Multiplya 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;
}
}
V této konfiguraci může klient na stejném počítači přistupovat ke službě na adrese http://localhost/servicemodelsamples/service.asmx. 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 generované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 používá klient konfigurační soubor (App.config), aby určil koncový bod, se kterým bude 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.
Jak nastavit, sestavit a spustit ukázku
Ujistěte se, že jste provedli instalační proceduru One-Time pro ukázky Windows Communication Foundation.
Pokud chcete sestavit verzi C# nebo Visual Basic .NET řešení, postupujte podle pokynů v Sestavení ukázek Windows Communication Foundation.
Pokud chcete spustit ukázku v konfiguraci pro jeden počítač nebo pro více počítačů, postupujte podle pokynů v Spuštění ukázek Windows Communication Foundation.