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.
İstek-yanıt bağıntısı, bir Receive/SendReply çifti ile iş akışı hizmetinde iki yönlü bir işlemi uygulamak ve başka bir Send/ReceiveReply çifti ile bir Web hizmetinde iki yönlü bir işlemi çağırmak için kullanılır. WCF hizmetinde iki yönlü bir işlem çağrılırken, hizmet geleneksel bir kesinlik temelli kod tabanlı Windows Communication Foundation (WCF) hizmeti olabileceği gibi bir iş akışı hizmeti de olabilir. İstek-yanıt bağıntısını kullanmak için gibi BasicHttpBindingiki yönlü bir bağlama kullanılmalıdır. İster çift yönlü bir işlem çağırın ister uygulayın, bağıntı başlatma adımları benzerdir ve bu bölümde ele alınmıştır.
Receive/SendReply ile Two-Way İşlemde Bağıntı Kullanma
Bir iş akışı hizmetinde iki yönlü bir işlem uygulamak için bir Receive/SendReply çifti kullanılır. Çalışma zamanı, yanıtın doğru çağırana gönderildiğinden emin olmak için istek-yanıt bağıntısını kullanır. Bir iş akışı, iş akışı hizmetleri için geçerli olan WorkflowServiceHost kullanılarak barındırıldığında, varsayılan bağıntı başlatma yeterlidir. Bu senaryoda, bir iş akışı tarafından kullanılan bir Receive/SendReply çifti bulunur ve belirli bir bağıntı yapılandırması gerekmez.
Receive StartOrder = new Receive
{
CanCreateInstance = true,
ServiceContractName = OrderContractName,
OperationName = "StartOrder"
};
SendReply ReplyToStartOrder = new SendReply
{
Request = StartOrder,
Content = … // Contains the return value, if any.
};
// Construct a workflow using StartOrder and ReplyToStartOrder.
Request-Reply Bağıntısını Açıkça Başlatmak
Diğer iki yönlü işlemler paralelse, bağıntı açıkça yapılandırılmalıdır. Bu, bir CorrelationHandle ve RequestReplyCorrelationInitializer belirterek veya bir Receive içine /SendReplyCorrelationScope yerleştirerek yapılabilir. Bu örnekte, istek-yanıt bağıntısı bir Receive/SendReply çiftte yapılandırılır.
Variable<CorrelationHandle> RRHandle = new Variable<CorrelationHandle>();
Receive StartOrder = new Receive
{
CanCreateInstance = true,
ServiceContractName = OrderContractName,
OperationName = "StartOrder",
CorrelationInitializers =
{
new RequestReplyCorrelationInitializer
{
CorrelationHandle = RRHandle
}
}
};
SendReply ReplyToStartOrder = new SendReply
{
Request = StartOrder,
Content = … // Contains the return value, if any.
};
// Construct a workflow using StartOrder and ReplyToStartOrder.
Bağıntıyı açıkça yapılandırmak yerine bir CorrelationScope etkinlik kullanılabilir. CorrelationScope, içerdiği mesajlaşma etkinliklerine örtük bir CorrelationHandle sağlar. Bu örnekte, bir Receive/SendReply çifti bir CorrelationScope içinde yer alır. Açık bağıntı yapılandırması gerekmez.
Receive StartOrder = new Receive
{
CanCreateInstance = true,
ServiceContractName = OrderContractName,
OperationName = "StartOrder"
};
SendReply ReplyToStartOrder = new SendReply
{
Request = StartOrder,
Content = … // Contains the return value, if any.
};
CorrelationScope s = new CorrelationScope
{
Body = new Sequence
{
Activities =
{
StartOrder,
// Activities that create the reply.
ReplyToStartOrder
}
}
};
// Construct a workflow using the CorrelationScope.
Ek bağıntılar gerekiyorsa, ilgili mesajlaşma etkinliklerinin CorrelationInitializers özelliği, istenen CorrelationInitializer türleri kullanılarak yapılandırılabilir.
Send/ReceiveReply ile Two-Way İşleminde Bağıntı Kullanma
Etkinlik yalnızca Receive tarafından barındırılan bir iş akışı hizmetinde kullanılabilirken, WorkflowServiceHostSendSend çifti, bir Web hizmetinde bir yöntemi çağırması gereken herhangi bir iş akışında kullanılabilir. ** İş akışı WorkflowServiceHost kullanılarak barındırılıyorsa, önceki bölümde açıklanan varsayılan bağıntı uygulanır, ancak bu şekilde barındırılmıyorsa, bağıntı açıkça istenen CorrelationInitializer ve CorrelationHandle kullanılarak veya CorrelationScope kullanılarak örtük tanıtıcı yönetimi ile yapılandırılmalıdır.
İki yönlü işlemleri olan bir hizmette Hizmet Başvurusu Ekle kullanılırken, açıkça belirtilen İstek/Yanıt bağıntısıyla bir Send/ReceiveReply çift etkinliğini dahili olarak sarmalayan etkinlikler oluşturulur.