Почему мой код работает на локальном хосте, а не на веб-сервере с IIS7?

Привет у меня проблема с моим приложением asp.net.

Проблема в том, что я могу без проблем выполнить свое приложение на локальном хосте, но если я установлю его в 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, что я не могу использовать этот код?

1 ответ

Решение

Попробуйте поместить p и u в предложение using:

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);
        }
    }
}

Я думаю, что вы столкнулись с проблемой утилизации.

Другие вопросы по тегам