Frage

Ich benutzen .asmx Web-Service zu verwenden, aber ich versuche zu WCF zu bewegen, weil es die letzte neueste Sache ist, und es sollte besser werden.

Wie auch immer, was ich will zu tun ist wirklich sehr einfach: eine Webservice erstellen, die die Anwendung Sammlung leert durch Application.Clear () aufrufen. In einem ASMX Web-Service, das ist wirklich sehr einfach, weil .asmx webservices vollen Zugriff auf die Anwendung [] Sammlung. Allerdings bedeutet dies nicht wirklich in WCF arbeiten.

So, hier ist mein Service-Vertrag:

[ServiceContract]
public interface IFlusherServicePage
{
    [OperationContract]
    void FlushApplicationCache();
}

Hier ist meine implementierende Klasse:

public class FlusherServicePage : Page, IFlusherServicePage
{
    public void FlushApplicationCache()
    {
        Application.Clear();
    }
}

Und hier ist meine SVC-Datei:

<%@ ServiceHost Language="C#" Debug="true" Service="FlusherServicePage" CodeBehind="~/App_Code/FlusherServicePage.cs" %>

Alles kompiliert in Ordnung. Allerdings, wenn ich meinen WebService nennen, FlushApplicationCache () wirft eine Nullreferenceexception, weil Anwendung [] ist null.

Gibt es eine Möglichkeit, die Anwendung [] Sammlung von einem WCF-Webservice zugreifen? Oder muss ich zu .asmx zurück?

War es hilfreich?

Lösung

Auch wenn WCF in derselben AppDomain wie ASP.Net ausgeführt werden kann, ist es nicht durch die volle ASP.Net-Pipeline gehen. Als solches wird die Httpcontext nicht gesetzt, und Sie können nicht auf die Anwendung erhalten. WCF-Dienste haben von ASP.Net in Erwartung wird gehostet in dem WAS von Server 2008 getrennt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top