开发者

WCF Closing a connection/Releasing resources

I've recently converted my ASMX service to WCF to take advantage of Sessions.

I've reviewed some of the Sessions tutorials on MSDN but still not sure I have a good setup in my code. as of now it works, but I'm not really sure why.

I got

[ServiceContract
    (SessionMode = SessionMode.Required,
     Namespace = "http://smartshopservice.org")]

Then I have

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession开发者_如何学Python)]
public class SmartShopService : SmartShopInterface
{
    private static Shopper sh = new Shopper();
    private List<aaa> data = new List<aaa>();

The first part of my question is whether Shopper is my "global" variables. I want it to always be there, while everything else such as "data" is instanciated per session. I've also setup WebConfig appropiately. Is there anything else I need to do?

My second question is how to close a session, and then flush all these variables? My Client right now is a WebClient, it is communicating like this:

static GarfieldService.SmartShopInterfaceClient service 
    = new GarfieldService.SmartShopInterfaceClient();

It seems to work, and I have onbody="" of the ASP.NET page to call a function that looks like this:

[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;
}

So I can connect, but how do I disconnect or close a session?


Re: Globals, yes using a static on the service will act as a global, and because you are using a PerSession the "aaa" varible will be per sesssion.

Re: terminating, try creating a "terminate" operation and setting attribute parameter IsTerminating = true.

P.S. I dont think the WebGet attribute is relevant to the wsDualHttpBinding.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜