2010-06-21 8 views
0

J'ai problème obtenu avec contextInfoIHttpModule Init pas tiré

[WebMethod] 
[SoapHeader("UserInfo", Direction = SoapHeaderDirection.In)] 
public void TestContext() 
     { 
      var user = ContextInfo.Current.User.LoginName; 
     } 

UserInfo _userInfo; 
     [System.Xml.Serialization.SoapElement(IsNullable = true)] 
     public UserInfo UserInfo 
     { 
      get { return _userInfo; } 
      set { _userInfo = value; } 
     } 

Quand je lance mon asmx à tout locale va bien, il entrer à

public void Init(HttpApplication httpApp). 

Mais quand je lance mon webservice au service, il ne pas et je reçois erreur à

ContextInfo.Current.User.LoginName; 

parce que Current est nulle.

Je vérifie cela par le débogueur à distance.

J'ai Windows Server 2008 et je suis dans un domaine comme mon serveur.

public class AuthenticateRequestHttpModule : IHttpModule 
    { 

     private HttpApplication mHttpApp; 

     public void Init(HttpApplication httpApp) 
     { 
      this.mHttpApp = httpApp; 

      mHttpApp.AuthenticateRequest += new EventHandler(OnAuthentication); 
     } 
... 
} 

contextInfo:

public class ContextInfo 
{ 

    public static void Create(User user) 
    { 
     HttpContext.Current.Items.Add(ITEM_KEY, new ContextInfo(user)); 
    } 

      public static ContextInfo Current 
    { 
     get 
     { 
      return HttpContext.Current.Items[ITEM_KEY] as ContextInfo; 
     } 
    } 


     private ContextInfo(User user) 
    { 

     _user = user; 
    } 

    public User User 
    { 
     get { return _user; } 
    } 


    User _user; 
    private const string ITEM_KEY = "ContextInfo"; 
} 

Toutes les idées?

+0

Pouvez-vous partager le code pour 'ContextInfo', spécifiquement' ContextInfo.Current'. –

+0

@Chris Taylor J'ai ajouté – user278618

Répondre

0

Il y avait un problème avec le pool d'applications.

Questions connexes