2008-12-12 98 views
0

我有一個在我的Vista盒子(IIS7)上開發的ASP.NET應用程序。它工作正常,直到我將其部署到產品服務器(W2K3/IIS6)。部署完成後,我會得到一致的「對象引用未設置爲對象的實例」。當從我的ViewState對象讀取,確定一個按鈕是否顯示「開」或「關」圖像。無法讓ViewState在生產服務器上工作

的頁面加載代碼初始化ViewState的對:

if (!IsPostBack) 
{ 
    ViewState["ButtonState"] = true; 
} 

然後我在的OnPreRender方法檢查按鈕的狀態:

protected override void OnPreRender(EventArgs e) 
{ 
    base.OnPreRender(e); 

    if ((bool)ViewState["ButtonState"]) 
    { 
     MyButton.ImageUrl = Constants.ButtonIcon; 
    } 
    else 
    { 
     MyButton.ImageUrl = Constants.NoButtonIcon; 
    } 
} 

到按鈕的狀態之間於swtich,我捕捉點擊按鈕並切換ViewState中的值:

protected void MyButton_Click(object sender, ImageClickEventArgs e) 
{ 
    ViewState["ButtonState"] = !(bool)ViewState["ButtonState"]; 
} 

On the開發箱,這完美的作品。但是,在活動框中,頁面會正確加載,但是當您單擊該按鈕(或實際上導致回發的任何其他按鈕)時,回發後會出現錯誤。

任何人都可以幫忙嗎?

+0

您是否有單個生產服務器或多個服務器在Web場中運行? – 2008-12-12 23:00:21

回答

2

你有< system.web> < pages enableViewState =「false」/>在服務器的web.config或machine.config文件中設置嗎?

+0

這是問題所在。該網站被放置在Microsoft Dynamics CRM網站中。我沒有意識到,CRM禁用ViewState。 – 2008-12-16 09:25:54

相關問題