Ошибка пространства имен 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
}

person toosweetnitemare    schedule 10.08.2011    source источник
comment
Ваш проект ссылается на сборку ews?   -  person Bob Vale    schedule 10.08.2011
comment
да. с помощью Microsoft.Exchange.WebServices; используя Microsoft.Exchange.WebServices.Data; с помощью Microsoft.Exchange.WebServices.Autodiscover;   -  person toosweetnitemare    schedule 10.08.2011


Ответы (4)


Вместо веб-служб 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

Это намного проще в использовании, чем WebServices.

person Henning Krause    schedule 10.08.2011
comment
Можете ли вы уточнить, как проще использовать? - person toosweetnitemare; 10.08.2011
comment
также это ews, которым я пользуюсь. разве это не одно и то же? - person toosweetnitemare; 10.08.2011
comment
Управляемый API EWS инкапсулирует веб-службы Exchange и предоставляет удобную объектную модель. Он более интуитивно понятен в использовании. - person Henning Krause; 11.08.2011

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

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

person toosweetnitemare    schedule 11.08.2011

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

person terva    schedule 10.08.2011
comment
это будет ссылка на сервис или просто ссылка? - person toosweetnitemare; 10.08.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.

person VMAtm    schedule 10.08.2011
comment
поиск этой dll на моей машине не дал результатов. Любая идея, находится ли он в пакете ews от Microsoft или мне нужно как-то его сгенерировать? - person toosweetnitemare; 10.08.2011
comment
@toosweetnitemare Предоставил ссылку на инструкции. - person VMAtm; 10.08.2011
comment
ты. я просто смотрел на это :) будем надеяться, что это работает. - person toosweetnitemare; 10.08.2011
comment
это не сработало. На самом деле у меня уже есть эта веб-ссылка в моем приложении под названием exchangeServiceEWS. - person toosweetnitemare; 10.08.2011
comment
@toosweetnitemare Вы прочитали всю статью? После добавления ссылки нужно скомпилировать ews.dll - person VMAtm; 10.08.2011
comment
да, я следил за всей статьей. это не решило мою проблему. Теперь я передал код коллеге и надеюсь, что они увидят что-то, что я пропустил. Спасибо за вашу помощь VMAtm. - person toosweetnitemare; 10.08.2011