2010-06-21 6 views
2

Exchange 2007 서버에 연결하려고합니다. 나는 많은 오류를 잡아서 응용 프로그램 로그에 넣기 위해 많은 예외 처리를 수행했습니다. ,Exchange 401 Unauthorized

 

public bool Logon() 
{ 
    string pwd = /*Get password*/; 

    try 
    { 
     service.Credentials = new WebCredentials(
      username + "@our.domain", pwd); 

     service.FindItems(WellKnownFolderName.Outbox, new ItemView(1)); 
    } 
    catch (Exception) 
    { 
     return false; 
    } 
    return true; 
} 

이 함수가 false를 돌려주는 경우, 항목이 사용자가 로그인하지 못했음을보고 응용 프로그램 로그에 배치됩니다 : 첫째, 나는 사용자가 제공 한 자격 증명을 교환 서비스에 액세스 할 수 있도록하는 기능을 가지고 프로세스는 종료된다.

함수가 성공하면이 함수를 호출하는 트랙의 어딘가에 있습니다. 그 다음 10 분 시작하는 사용자에 대한 모든 약속을 가져옵니다 당신이 볼 수 있듯이, 함수가 모든 예외를 포착하고이를 기록합니다

 

protected List GetFutureAppointments() 
{ 
    try 
    { 
     SearchFilter.IsGreaterThanOrEqualTo startTime = 
      new SearchFilter.IsGreaterThanOrEqualTo(
       AppointmentSchema.Start, DateTime.Now); 

     SearchFilter.IsLessThanOrEqualTo endTime = 
       new SearchFilter.IsLessThanOrEqualTo(
        AppointmentSchema.Start, DateTime.Now.AddMinutes(10)); 

     SearchFilter filter = 
      new SearchFilter.SearchFilterCollection(LogicalOperator.And, 
       new SearchFilter[] { startTime, endTime }); 

     FindItemsResults results = 
      service.FindItems(
       WellKnownFolderName.Calendar, filter, new ItemView(10)); 

     return new List(results.Items); 
    } 
    catch (Exception e) 
    { 
     Utilities.LogException(e); 
     return null; 
    } 
} 

. 로그에 표시는 Request failed. The remote server returned an error: (401) Unauthorized.입니다. 스택 추적은 service.FindItems() 기능을 가리 킵니다.

그래서 약간 혼란스러워서 아마도 교환이나 웹 서비스 또는 기타에 대해 충분히 알지 못합니다. 로그온 함수가 true를 반환하지만 나중에 권한 부여가 실패합니다. 어떤 제안?

답변

1

자격 증명을 통해 보낼 편지함에는 액세스 할 수 있지만 캘린더에는 액세스 할 수 없습니까?

+0

흠, 가능합니다. 우리 기술 팀에 물어보고 다시 연락 할 것입니다. – Anthony

관련 문제