2011-08-10 8 views
1

요약 : 응용 프로그램에서 ExchangeServiceBinding 명령을 수락하지 않습니다.ExchangeServiceBinding 네임 스페이스 오류


세부 사항 :

나는 내가 200 개 이메일 덩어리로받은 편지함을 깰 인덱스를 사용하고, 매우 큰 사서함을 통해 루프를 시도하고있다. (아래 그림 참조) 내가 찾을 수있는 유일한 예는

"ExchangeServiceBinding"형식 또는 네임 스페이스 이름을 반환 유지를 찾을 수 없습니다 (당신은 using 지시문 또는 어셈블리 참조가?)

어떤 나는 그것을 사용하고 있기 때문에 나는 이상한 것을 발견한다 using Microsoft.Exchange.WebServices;. 어떤 아이디어 나 도움을 주시면 대단히 감사하겠습니다. Windows   7 및 Visual Studio 2010을 실행 중이고 Exchange 2007 사서함에 액세스하려고합니다.


것들 나는 시도했다 :

  • 는 스택 내 책상에 머리를 꽝 MSDN
  • 을 검색   오버플로
  • 를 검색하는 구글
  • 을 검색
  • 시행 착오

코드 :

// Create binding variable to be used for GetItemsFromInbox(). 
// Set up the binding with credentials and URL. 
ExchangeServiceBinding binding = new ExchangeServiceBinding(); 
binding.Credentials = new NetworkCredential(dUser, dPassword, dDomain); 
binding.Url = new Uri("https://" + ExchangeServerName + "/EWS/Exchange.asmx"); 

// Set up the binding for Exchange impersonation. 
binding.ExchangeImpersonation = new ExchangeImpersonationType(); 
binding.ExchangeImpersonation.ConnectingSID = new ConnectingSIDType(); 
binding.ExchangeImpersonation.ConnectingSID.PrimarySmtpAddress = "mailboxnamehere”; 

// Call GetItemsFromInbox() 
int index = 0; 
bool looping = true; 

while (looping) 
{ 
    List<ItemType> items = GetItemsFromInbox(binding, index, 200, index); 
    if (items == null || items.count == 0) 
    { 
     looping = false; 
     break; 
    } 
    // Do your work here 
} 
+1

프로젝트가 ews 어셈블리를 참조합니까? –

+0

예. Microsoft.Exchange.WebServices를 사용합니다. using Microsoft.Exchange.WebServices.Data; using Microsoft.Exchange.WebServices.Autodiscover; – toosweetnitemare

답변

1

오류가 발견되었습니다. 이 방법론은 Exchange 2010에서만 작동합니다. Exchange 2007을 실행하고 있기 때문에 완전히 다른 방식으로이 작업을 수행해야합니다.

모두에게 감사드립니다. 정말 감사드립니다.

0

ExchangeServiceBindingews.dll에 포함되어 있습니다. 오류에 따르면이 DLL 파일에 대한 참조를 추가하지 않았습니다.

자세한 내용은 대한 Generating Exchange Web Services Proxy Classes :

그래서 지금 당신은 자동 생성 된 프록시와 코드 파일이 있습니다. 그런 다음 Exchange Web Services 프로젝트에서 사용할 코드 파일을 어셈블리로 컴파일합니다. C# 컴파일러는 Visual Studio 2005 명령 프롬프트와 함께 사용할 수 있습니다. EWS.dll이의 이름임을

csc /target:library /out:EWS.dll EWS.cs 

공지 사항 : 당신이 당신의 코드 파일 EWS.cs라는 것을 가정하면, 어셈블리로 코드를 컴파일하려면 명령 프롬프트에서 다음 명령을 실행할 수 있습니다 컴파일 된 어셈블리. 이것이 EWS.dll이 생성되는 방법입니다.

+0

내 컴퓨터 검색이이 DLL에 대해 비어 있습니다. 어떤 아이디어든지 마이크로 소프트의 ews 패키지에 포함되어 있거나 어떻게 든 생성해야합니까? – toosweetnitemare

+0

@toosweetnitemare 지침에 대한 링크가 제공됩니다. – VMAtm

+0

ty. 나는 단지 이것을 실제로보고 있었다 :) 그것이 일하기를 바란다. – toosweetnitemare

1

Exchange 웹 서비스 대신 Exchange Managed API를 사용하십시오.

SDK : http://msdn.microsoft.com/en-us/library/dd633710(v=exchg.80).aspx
다운로드 : http://www.microsoft.com/download/en/details.aspx?id=13480

그것은 웹 서비스보다 사용하기 훨씬 쉽다.

+0

당신은 더 사용하기 쉽게 상세하게 설명 할 수 있습니까? – toosweetnitemare

+0

또한 메신저를 사용하고 있습니다. 똑같은 것이 아닙니까? – toosweetnitemare

+0

EWS 관리 API는 Exchange 웹 서비스를 캡슐화하고 멋진 개체 모델을 제공합니다. 사용하기가 더 직관적입니다. –