2010-11-21 32 views
0

WCF hizmetine bir HTTP POST izni vermek için ne olması gerekir?HTTP WCF hizmetine POST

İnsanların SOAP'yi yalnızca bu hizmetle kullanmasına izin vermemek, aynı zamanda bu hizmet için HTTP POST'unu kullanabilmeleri ve ideal olarak bir XML yanıtı almaları gerekir.

Bir WCF hizmetinin bir HTTP POST'unu kabul etmesine izin vermenin kolay bir yolunu bulamıyorum.

HTTP 415 hatasını geçmişim ve uç noktalarla ilgili bir web.config değişikliği veya yöntemin (WebInvoke) üstündeki ek bir öznitelik hakkında bazı yardıma ihtiyacım var.

Teşekkür ederiz! Standart HTTP fiilleri üzerinden bir WCF hizmetiyle konuşmak için WCF REST bileşenlerini kullanmanız gerekir.

+0

POX (plain HTTP XML) WCF malzeme için REST Starter Kit @: http://www.msdev.com/Directory/Description.aspx?eventId=1312 –

cevap

4

.NET 3.5 SP1'de ihtiyaç duyacağınız WCF REST Başlangıç ​​Seti var (temel paketin bir parçası değil).

Buna sahip olduğunuzda, WCF hizmetinizde webHttpBinding ile bir son nokta tanımlayabilirsiniz ve temel olarak GET, POST, PUT ve DELETE işlemlerini tanımlamanıza izin vermeniz gerekir.

WCF REST developer center ürününü, tüm bunları nasıl yapacağınızı gösteren çok sayıda beyaz kağıda, eğiticiye, yürüyüşe ve ekrana göz atın.

Özetle, size WebGet veya WebInvoke nitelikler ve bir URL şablonuyla DİNLENME HTTP üzerinden sergilemek istediğiniz servis yöntemi (ler) süsleyecekti - gibi bir şey: o zaman

[ServiceContract] 
public partial class YourService 
{ 
    [WebInvoke(Method = "POST", UriTemplate = "yourservice/{id}/save")] 
    [OperationContract] 
    SomeReturnType YourMethodCall(string someParam); 
    ... 
} 

ve içinde senin - WCF REST dev merkezinden tüm içine gitmeli

<endpoint name="webEndpoint" 
      address="...." 
      binding="webHttpBinding" 
      contract="IYourServiceContract" /> 

Ayrıca config birkaç ekstra şeyler gerekebilir: web.config veya app.config yılında (IIS içinde barındırılması için) doğru bağlama ile bir bitiş noktası ihtiyaç detaylar derinlemesine.

+0

istemi yanıtınız için teşekkür ederiz. . Başlangıç ​​kitine ve dev merkezine bakacağım. –