2013-10-24 174 views
0

您好我的asp.net應用程序有問題。爲什麼我的代碼在本地主機上工作,但不在IIS7的Web服務器上工作?

問題是,我可以在我的本地主機上執行我的應用程序沒有問題,但如果我將它安裝在服務器上的IIS7我得到一個錯誤。我嘗試查找錯誤,並選擇了某個區域中的錯誤。

以下是錯誤消息:

Object reference not set to an instance of an object. 

bei linde_wiemann_gastzugang.linde_wiemann_daten.IsGroupMember(String dc, String user, String group) in D:\Programmierung\Visual_Studio_2010\Projekte\lw_gastzugang\lw_gastzugang\lw_daten.cs:Zeile 30. 

下面是代碼:

public static bool IsGroupMember(string dc, string user, string group) 
{ 
    try 
    { 
     using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, dc)) 
     { 
      bool found = false; 

      GroupPrincipal p = GroupPrincipal.FindByIdentity(ctx, group); 
      UserPrincipal u = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, user); 

      found = p.GetMembers(true).Contains(u); //I think the error is here :(

      p.Dispose(); 
      u.Dispose(); 

      return found; // <-- Zeile 30 
     } 
    } 
    catch (Exception ex) 
    { 
     EventLogManager.CreateEventLog("Gastzugang",ex.Message + " : " + dc + " - " + user + " - " + group); 
     return false; 
    } 

我嘗試使用硬編碼值,如何真實,這與他們的工作:/ 什麼使IIS我不能使用此代碼?

+2

啊是老'Der Objektverweis'錯誤 – Jonesopolis

+0

N或P的uReference? –

+0

聽起來不像IIS問題......聽起來像'p'爲空。 – MikeSmithDev

回答

1

儘量把p和u成使用條款:

using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, dc)) 
{ 
    using (GroupPrincipal p = GroupPrincipal.FindByIdentity(ctx, group)) 
    { 
     using (UserPrincipal u = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, user)) 
     { 
      return p.GetMembers(true).Contains(u); 
     } 
    } 
} 

我想你區域運行到處置問題。

相關問題