1
我最近將ASMX服務轉換爲WCF以充分利用會話。WCF關閉連接/釋放資源
我已經回顧了一些關於MSDN的會話教程,但仍然不確定我在代碼中有一個好的設置。截至目前它的工作原理,但我不確定爲什麼。
我
[ServiceContract
(SessionMode = SessionMode.Required,
Namespace = "http://smartshopservice.org")]
然後,我有
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
public class SmartShopService : SmartShopInterface
{
private static Shopper sh = new Shopper();
private List<aaa> data = new List<aaa>();
我的問題的第一部分是購物者是否是我的 「全局」 變量。我希望它始終在那裏,而其他所有內容(如「數據」)都會在每個會話中實例化。我也安裝了WebConfig。還有什麼我需要做的?
我的第二個問題是如何關閉一個會話,然後刷新所有這些變量?我的客戶現在是一個Web客戶端,它是溝通這樣的:
static GarfieldService.SmartShopInterfaceClient service
= new GarfieldService.SmartShopInterfaceClient();
它似乎工作,我有onbody = ASP.NET頁的「」地叫,看起來像這樣的功能:
[WebMethod]
public static bool Connect() {
try {
if (service.State
== System.ServiceModel.CommunicationState.Closed) {
service.Open();
return true;
}
else if (service.State
== System.ServiceModel.CommunicationState.Created) {
service.Open();
return true;
}
}
catch {}
return false;
}
所以我可以連接,但如何斷開連接或關閉會話?
你使用什麼綁定? – Schneider 2011-05-18 12:44:06