Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Unwrapped örneği, eşlenmemiş iletileri gösterir. Varsayılan olarak, ileti gövdesi, bir hizmet işleminin parametreleri kapsayacak şekilde biçimlendirilir. Aşağıdaki örnek, sarmalanmış modda Add hizmetine bir ICalculator istek iletisini gösterir.
<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>
<Add> öğesi, ileti gövdesindeki n1 ve n2 parametrelerini sarar. Buna karşılık, aşağıdaki örnek eşlenmemiş modda eşdeğer iletiyi gösterir.
<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>
Sarmalanmamış mesaj, n1 ve n2 parametrelerini içeren bir öğeye sarmalamaz, onlar soap gövde öğesinin doğrudan alt öğeleridir.
Uyarı
Bu örnek için kurulum yordamı ve derleme yönergeleri bu konunun sonunda yer alır.
Bu örnekte, aşağıdaki örnek kodda gösterildiği gibi hizmet işlemi parametre türüne ve dönüş değeri türüne MessageContractAttribute uygulanarak açılmamış bir ileti oluşturulur.
[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;
//…
}
Gönderilen ve alınan iletileri görmenize olanak sağlamak için bu örnek izlemeyi kullanır. Buna ek olarak, WSHttpBinding alınan iletilerin sayısını azaltmak amacıyla, güvenlik olmadan yapılandırıldı.
Sonuçta elde edilen izleme günlüğü (c:\logs\Message.log), Hizmet İzleme Görüntüleyicisi Aracı (SvcTraceViewer.exe) kullanılarak görüntülenebilir. İleti içeriğini görüntülemek için, Hizmet İzleme Görüntüleyicisi aracının hem sol hem de sağ bölmelerinde İletiler'i seçin. Bu örnekteki izleme günlükleri C:\LOGS klasöründe oluşturulacak şekilde yapılandırılır. Örneği çalıştırmadan önce bu klasörü oluşturun ve kullanıcıya bu dizin için Ağ Hizmeti yazma izinleri verin.
Örneği ayarlamak, derlemek ve çalıştırmak için
Windows Communication Foundation Örnekleri içinOne-Time Kurulum Yordamını yaptığınızdan emin olun.
İletileri günlüğe kaydetmek için bir C:\LOGS dizini oluşturun. Kullanıcıya bu dizin için Ağ Hizmeti yazma izinleri verin.
Çözümün C# veya Visual Basic .NET sürümünü oluşturmak için Windows Communication Foundation Örneklerioluşturma başlığındaki yönergeleri izleyin.
Örneği tek bir makine veya makineler arası bir yapılandırmada çalıştırmak için, Windows Communication Foundation örneklerini çalıştırmayönergelerini izleyin.