Ошибка пространства имен ExchangeServiceBinding - PullRequest
1 голос
/ 10 августа 2011

Сводка: приложение не примет команду ExchangeServiceBinding.


Детали:

Я пытаюсь перебрать очень большой почтовый ящик, поэтому я использую индекс, чтобы разбить почтовый ящик на 200 почтовых блоков. Единственный пример, который я смог найти (показанный ниже), продолжает возвращать

не удалось найти тип или имя пространства имен «ExchangeServiceBinding» (отсутствует директива using или ссылка на сборку?)

Что я нахожу странным, потому что я использую это using Microsoft.Exchange.WebServices;. Любые идеи или помощь с благодарностью. Я использую Windows 7 и Visual Studio 2010 и пытаюсь получить доступ к почтовым ящикам Exchange 2007.


То, что я пробовал:

  • поиск в Google
  • поиск переполнения стека
  • поиск 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
}

Ответы [ 4 ]

1 голос
/ 11 августа 2011

Я нашел свою ошибку.Эта методология работает только для Exchange 2010. Поскольку я использую Exchange 2007, мне нужно будет найти совершенно другой способ заставить эту работу работать.

Спасибо всем за помощь, я очень ценю это.

1 голос
/ 10 августа 2011

Вместо веб-служб Exchange используйте управляемый API-интерфейс Exchange.

SDK: http://msdn.microsoft.com/en-us/library/dd633710(v=exchg.80).aspx
Загрузить: http://www.microsoft.com/download/en/details.aspx?id=13480

Гораздо проще в использовании, чем веб-сервисы.

0 голосов
/ 10 августа 2011

Вы должны добавить WebReference к вашему решению в Exchange WebService. https://exchaneServerName/EWS/Exchange.asmx

0 голосов
/ 10 августа 2011

ExchangeServiceBinding содержится в ews.dll. По вашей ошибке вы не добавили ссылку на этот файл DLL.

Дополнительные сведения о Создание прокси-классов веб-служб Exchange :

Итак, теперь у вас есть файл кода с автоматически сгенерированными прокси. Затем вы компилируете свой файл кода в сборку для использования в своих проектах веб-служб Exchange. Компилятор C # доступен в командной строке Visual Studio 2005. Предполагая, что вы назвали свой файл кода EWS.cs, вы можете запустить следующую команду в командной строке, чтобы скомпилировать ваш код в сборку:

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

Обратите внимание, что EWS.dll - это имя скомпилированной сборки. Так создается EWS.dll.

...