2008-12-12 9 views
0

J'ai une application ASP.NET développée sur ma boîte Vista (IIS7). Cela fonctionne bien jusqu'à ce que je le déploie sur le serveur de produit (W2K3/IIS6). Une fois déployé, je reçois une "Référence d'objet non définie sur une instance d'un objet" cohérente. lors de la lecture de mon objet ViewState qui détermine si un bouton affiche une image "On" ou "Off".Impossible de faire fonctionner ViewState sur le serveur de production

Le code de chargement de la page initialise le ViewState sur:

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

Je puis vérifier l'état du bouton dans la méthode OnPreRender:

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

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

swtich entre les états de bouton, je capture le clic du bouton et basculer la valeur dans le ViewState:

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

Sur le boîte de développement, cela fonctionne parfaitement. Toutefois, dans la zone de phase, la page se charge correctement mais lorsque vous cliquez sur le bouton (ou en effet tout autre bouton qui provoque une publication), vous obtenez l'erreur après la publication.

Quelqu'un peut-il aider?

+0

Avez-vous un seul serveur de production ou plusieurs serveurs fonctionnant dans une batterie de serveurs Web? –

Répondre

2

Avez-vous < system.web> < pages enableViewState = "false" /> défini dans les fichiers web.config ou machine.config de votre serveur?

+0

C'était le problème. Le site a été placé dans un site Web Microsoft Dynamics CRM. Je n'avais pas réalisé que CRM désactivait ViewState. –

Questions connexes