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 Rozbalená ukazuje nezabalené zprávy. Ve výchozím nastavení je text zprávy formátován tak, aby byly parametry operace služby zabaleny. Následující ukázka ukazuje Add zprávu požadavku na ICalculator službu v zabaleném režimu.
<s:Envelope
xmlns:s="http://www.w3.org/2003/05/soap-envelope"
xmlns:a="http://schemas.xmlsoap.org/ws/2005/08/addressing">
<s:Header>
…
</s:Header>
<s:Body>
<Add xmlns="http://Microsoft.ServiceModel.Samples">
<n1>100</n1>
<n2>15.99</n2>
</Add>
</s:Body>
</s:Envelope>
Element <Add> v textu zprávy obaluje parametry n1 a n2. Naproti tomu následující ukázka ukazuje ekvivalentní zprávu v nezabaleném režimu.
<s:Envelope
xmlns:s="http://www.w3.org/2003/05/soap-envelope"
xmlns:a="http://schemas.xmlsoap.org/ws/2005/08/addressing">
<s:Header>
….
</s:Header>
<s:Body>
<n1 xmlns="http://Microsoft.ServiceModel.Samples">100</n1>
<n2 xmlns="http://Microsoft.ServiceModel.Samples">15.99</n2>
</s:Body>
</s:Envelope>
Rozbalená zpráva nezabalí parametry n1 a n2 do obalujícího prvku, jsou přímými potomky elementu soap body.
Poznámka:
Postup nastavení a pokyny k sestavení pro tuto ukázku najdete na konci tohoto tématu.
V této ukázce se vytvoří nezabalená zpráva použitím MessageContractAttribute na typ parametru operace služby a typ návratové hodnoty, jak je ukázáno v následujícím vzorovém kódu.
[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
public interface ICalculator
{
[OperationContract]
ResponseMessage Add(RequestMessage request);
[OperationContract]
ResponseMessage Subtract(RequestMessage request);
[OperationContract]
ResponseMessage Multiply(RequestMessage request);
[OperationContract]
ResponseMessage Divide(RequestMessage request);
}
//setting IsWrapped to false means the n1 and n2
//members will be direct children of the soap body element
[MessageContract(IsWrapped = false)]
public class RequestMessage
{
[MessageBodyMember]
private double n1;
[MessageBodyMember]
private double n2;
//…
}
//setting IsWrapped to false means the result
//member will be a direct child of the soap body element
[MessageContract(IsWrapped = false)]
public class ResponseMessage
{
[MessageBodyMember]
private double result;
//…
}
Aby bylo možné zobrazit odesílané a přijaté zprávy, tato ukázka používá trasování. Kromě toho WSHttpBinding byl nakonfigurován bez zabezpečení, aby se snížil počet zpráv, které protokoluje.
Výsledný protokol trasování (c:\logs\Message.log) lze zobrazit pomocí nástroje Sledování trasování služby (SvcTraceViewer.exe). Pokud chcete zobrazit obsah zprávy, vyberte Zprávy v levém i pravém podokně nástroje Prohlížeč trasování služeb. Protokoly trasování v této ukázce jsou nakonfigurované tak, aby se vygenerovaly do složky C:\LOGS. Vytvořte tuto složku před spuštěním ukázky a udělte uživatelské síťové službě oprávnění k zápisu do tohoto adresáře.
Jak nastavit, sestavit a spustit ukázku
Ujistěte se, že jste provedli instalační proceduru One-Time pro ukázky Windows Communication Foundation.
Vytvořte adresář C:\LOGS pro protokolování zpráv. Udělte uživatelské síťové službě oprávnění k zápisu do tohoto adresáře.
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.