2010-03-15 28 views
5

Tôi cần sử dụng hoặc kích thích một đối tượng phiên rất đơn giản bên trong ứng dụng WCF của tôi.Biến phiên trong ứng dụng WCF

Tôi chỉ cần lưu trữ một số giá trị khi bắt đầu cuộc gọi và tôi cần quyền truy cập vào các giá trị này trong khi tôi thực hiện một số phương pháp khác nhau của dịch vụ.

Phiên Asp.NET sẽ rất lý tưởng để sử dụng cho điều này vì vậy tôi cần phải tìm hiểu những gì có sẵn trên một ứng dụng WCF để lưu trữ các giá trị như vậy.

Lưu ý: đây chỉ là một cuộc gọi mỗi phiên, tôi không cần phải giữ lại phiên này giữa các cuộc gọi khác nhau từ các khách hàng sử dụng dịch vụ và như vậy ..

Trả lời

4

Nội dung bạn mô tả (ngữ cảnh tùy chỉnh được giữ lại trong vòng đời của một yêu cầu) giống như HttpContext.Items hơn phiên ASP.NET.

WCF có một lớp được gọi là OperationContext tương tự như HttpContext. Nó không có thuộc tính Items cho ngữ cảnh tùy chỉnh, nhưng this blog post mô tả kỹ thuật bạn có thể sử dụng để đạt được những gì bạn muốn.

+2

@Joe Liên kết bị hỏng. bạn có thể cung cấp thêm thông tin không? Cảm ơn bạn! –

2

Bạn phải làm một vài điều.

Set aspNetCompatibilityEnabled = true trên máy chủ của bạn (bên System.ServiceModel | serviceHostingEnvironment)

Dịch vụ (không phải là hợp đồng) - nên được ghi nhận bằng:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] 

Cuối cùng, bạn có bạn phải đặt allowCookies trên ràng buộc của bạn thành true.

<basicHttpBinding> 
<binding name="SessionBinding" allowCookies="true"> 
</basicHttpBinding> 

Rất tò mò, bạn có chắc chắn bạn cần phiên?

+0

phải được đặt trong dịch vụ mà tôi giả định? – Enzero

+1

phải được đặt trong ứng dụng khách – Arvind

Các vấn đề liên quan