2008-12-12 86 views
1

我用.ASMX Web服務訪問應用程序[]集合,但我想移動到WCF,因爲它是最新的最新的東西,它應該會更好。如何從一個WCF Web服務

不管怎麼說,我想要做的是真的很簡單:創建一個通過調用Application.Clear清空應用集合的web服務()。在ASMX Web服務中,這確實非常簡單,因爲.ASMX web服務可以完全訪問Application []集合。但是,這在WCF中不起作用。

所以,這裏是我的服務合同:

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

這裏是我的實現類:

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

這是我的.svc文件:

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

一切編譯罰款。但是,當我調用web服務時,FlushApplicationCache()會拋出NullReferenceException,因爲Application []爲空。

有沒有辦法從一個WCF Web服務訪問應用程序[]收藏?還是我需要回到.ASMX?

回答

0

即使WCF可以在同一個AppDomain中的ASP.Net運行,它不經過充分ASP.Net管道。因此,HttpContext未設置,您無法訪問應用程序。 WCF服務已與ASP.Net分離,預計將託管在Server 2008的WAS中。