2008-12-12 82 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

相关问题