Проблема олицетворения в Exchange 2010 при запросе сведений о доступности календаря пользователя - PullRequest
1 голос
/ 29 июля 2011

Я работаю над проектом, в котором внешнее приложение пытается получить информацию о доступности (Свободно / Занято) вместе с деталями (Расположение / Тема / и т. Д.) Для группы пользователей в Exchange 2010.

Я прочитал достаточно, и думаю, что лучший способ сделать это - через служебную учетную запись, запущенную приложением, которое выдает себя за данного пользователя и извлекает информацию из календаря.

Я настроил олицетворение для учетной записи службы и запустил базовый тест, обнаруженный в technet: http://msdn.microsoft.com/en-us/library/bb204088(v=exchg.140).aspx

Это работает для вытягивания папки почтового ящика (как в примере) и если попытаться вытянуть обратно папку календаря.

Я также нашел, как получить доступ через technet: http://msdn.microsoft.com/en-us/library/aa563800(v=exchg.140).aspx это также будет работать, если я войду в систему как пользователь, для которого пытаюсь найти информацию календаря.

Проблема возникает, когда я пытаюсь объединить XML олицетворения с доступностью get. Вот что у меня есть для двух комбайнов:

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
           xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
           xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
           xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
  <soap:Header>
<t:ExchangeImpersonation>
  <t:ConnectingSID>
    <t:PrincipalName>[usersname@myorg.org]</t:PrincipalName>
  </t:ConnectingSID>
</t:ExchangeImpersonation>
</soap:Header>
  <soap:Body> 
   <GetUserAvailabilityRequest xmlns="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"> 
  <t:TimeZone xmlns="http://schemas.microsoft.com/exchange/services/2006/types"> 
      <Bias>300</Bias> 
      <StandardTime> 
        <Bias>0</Bias> 
        <Time>02:00:00</Time> 
        <DayOrder>1</DayOrder> 
        <Month>11</Month> 
        <DayOfWeek>Sunday</DayOfWeek> 
      </StandardTime> 
       <DaylightTime> 
         <Bias>-60</Bias> 
         <Time>02:00:00</Time> 
         <DayOrder>2</DayOrder> 
         <Month>3</Month> 
         <DayOfWeek>Sunday</DayOfWeek> 
       </DaylightTime> 
     </t:TimeZone> 
     <MailboxDataArray> 
        <t:MailboxData> 
          <t:Email> 
            <t:Address>[usersname@myorg.org]</t:Address> 
          </t:Email> 
          <t:AttendeeType>Required</t:AttendeeType>
          <t:ExcludeConflicts>false</t:ExcludeConflicts> 
        </t:MailboxData> 
      </MailboxDataArray> 
      <t:FreeBusyViewOptions> 
        <t:TimeWindow> 
          <t:StartTime>2011-07-28T00:00:00</t:StartTime> 
          <t:EndTime>2011-07-28T23:59:59</t:EndTime> 
        </t:TimeWindow> 
        <t:MergedFreeBusyIntervalInMinutes>5</t:MergedFreeBusyIntervalInMinutes> 
        <t:RequestedView>DetailedMerged</t:RequestedView> 
      </t:FreeBusyViewOptions> 
    </GetUserAvailabilityRequest> 
  </soap:Body> 
</soap:Envelope>

Что я получаю, так это:

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <s:Fault>
      <faultcode xmlns:a="http://schemas.microsoft.com/exchange/services/2006/types">a:ErrorProxyRequestNotAllowed</faultcode>
      <faultstring xml:lang="en-US">Client context header found but no request type found in SOAP header.</faultstring>
      <detail>
        <m:ErrorCode xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">5015</m:ErrorCode>
      </detail>
    </s:Fault>
  </s:Body>
</s:Envelope>

Еще немного покопаться в technet, ErrorProxyRequestNotAllowed info: «Эта ошибка указывает на то, что запрос, отправленный веб-службами Exchange на другой сервер клиентского доступа при попытке выполнить запрос GetUserAvailability, был недействительным. Этот код ответа обычно указывает, что произошла ошибка конфигурации или прав или что кто-то безуспешно пытался имитировать доступность запрос прокси. "

У меня проблемы с тем, как олицетворение работает в тех случаях, когда я возвращаю почтовые и календарные папки пользователя, но не работаю в случае, когда я хочу проверить их доступность.

Прямо сейчас я просто отправляю прямой XML через curl (завернутый в небольшой скрипт на python).

У кого-нибудь есть указатели? Заранее спасибо!

1 Ответ

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

Я наконец нашел несколько (старых) ссылок, что это известная функция / ошибка с GetUser [blank] Запросы в стиле запросов и олицетворение. Два просто не работают вместе. Я надеюсь, что это сэкономит кому-то немного времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...