WCF Channel und ChannelFactory Caching

Also habe ich beschlossen, um die Leistung ein bisschen in meinem WCF-Anwendung und versuchen Sie die cache-Kanäle und die ChannelFactory. Es gibt zwei Fragen, die ich über all dies, die ich brauche, um aufzuräumen, bevor ich loslege.

1) Sollte die ChannelFactory implementiert werden, wie singleton?

2) ich bin irgendwie unsicher wie man cache/Wiederverwendung einzelner Kanäle. Haben Sie Beispiele wie Sie dies tun können, die Sie teilen können?

Wahrscheinlich ist es wichtig zu beachten, dass mein WCF-Dienst bereitgestellt wird, als ein stand-alone-Anwendung, mit nur einem Endpunkt.

EDIT:

Danke für die Antworten. Ich habe noch ein paar Fragen und zwar...

1)ich denke, ich bin verwirrt, wo das caching erfolgen soll. Ich bin die Bereitstellung einer client-API, verwendet dieser code in eine andere Abteilung in unserer Firma. Stellt dieses caching auf dem client erfolgen?

2)Die client API verwendet wird als Teil einer Silverlight-Anwendung, ändert sich dadurch irgendetwas? In allem, was caching-Mechanismen zur Verfügung, die in einem solchen Szenario?

3)ich bin mir immer noch nicht klar, über das design der GetChannelFactory Methode. Wenn ich nur einen service, sollte nur ein ChannelFactory jemals erstellt und zwischengespeichert?

Habe ich noch nicht implementierte caching-Funktion (da bin ich völlig verwirrt darüber, wie es getan werden sollte!), aber hier ist, was ich für die client-proxy so weit:

namespace MyCompany.MyProject.Proxies
{
    static readonly ChannelFactory<IMyService> channelFactory =
        new ChannelFactory<IMyService>("IMyService");

    public Response DoSomething(Request request)
    {
        var channel = channelFactory.CreateChannel();

        try
        {
            Response response = channel.DoSomethingWithService(request);
            ((ICommunicationObject)channel).Close();
            return response;
        }
        catch(Exception exception)
        {
            ((ICommenicationObject)channel).Abort();
        }
    }
}

InformationsquelleAutor der Frage Didaxis | 2011-10-20

Schreibe einen Kommentar