2013-02-15 3 views
0

Я пытаюсь заставить мою систему MDM для Windows Phone 8 работать. В настоящее время устройство регистрируется и выполняет первоначальный запрос SyncML. Он также отвечает на запросы в интуитивном ответе сервера, но я предполагаю, что в нем что-то не нравится. Причина в том, что он использует интервалы повтора для дополнительных подключений к серверу, а затем после этого больше не подключается.Протокол SyncML в WP8-клиент перестает отвечать

Когда я запускаю соединение вручную, он работает, но автоматические соединения не выполняются. Странно то, что внутренне счетчик SessionID SyncML увеличивается с определенными интервалами, но устройство даже не пытается подключить сервер.

Вот мой протокол SyncML

начинает Клиент:

<SyncML xmlns="SYNCML:SYNCML1.2"> 
    <SyncHdr> 
    <VerDTD>1.2</VerDTD> 
    <VerProto>DM/1.2</VerProto> 
    <SessionID>E</SessionID> 
    <MsgID>1</MsgID> 
    <Target> 
     <LocURI>https://ssl.../enrollment/omadmservice.php</LocURI> 
    </Target> 
    <Source> 
     <LocURI>IMEI:35...64</LocURI> 
     <LocName>riho</LocName> 
    </Source> 
    <Cred> 
     <Meta> 
     <Format xmlns="syncml:metinf">b64</Format> 
     <Type xmlns="syncml:metinf">syncml:auth-md5</Type> 
     </Meta> 
     <Data>SoFh6khg4awLYXn2PQOOwQ==</Data> 
    </Cred> 
    </SyncHdr> 
    <SyncBody> 
    <Alert> 
     <CmdID>2</CmdID> 
     <Data>1201</Data> 
    </Alert> 
    <Replace> 
     <CmdID>3</CmdID> 
     <Item> 
     <Source> 
      <LocURI>./DevInfo/DevId</LocURI> 
     </Source> 
     <Data>IMEI:35...64</Data> 
     </Item> 
     ... 
    </Replace> 
    <Final/> 
    </SyncBody> 
</SyncML> 

Сервер отвечает:

<SyncML xmlns="SYNCML:SYNCML1.2"> 
    <SyncHdr> 
     <VerDTD>1.2</VerDTD> 
     <VerProto>DM/1.2</VerProto> 
     <SessionID>E</SessionID> 
     <MsgID>1</MsgID> 
     <Target> 
      <LocURI>IMEI:35...64</LocURI> 
     </Target> 
     <Source> 
      <LocURI>https://ssl.../enrollment/omadmservice.php</LocURI> 
      <LocName>MDMServer</LocName> 
     </Source> 
     <Cred> 
      <Meta> 
      <Format xmlns="syncml:metinf">b64</Format> 
      <Type xmlns="syncml:metinf">syncml:auth-md5</Type> 
      </Meta> 
      <Data>ryJ+boSmdCoO8BzxXcYSxg==</Data> 
     </Cred> 
    </SyncHdr> 
    <SyncBody> 
     <Status> 
     <CmdID>1</CmdID> 
     <MsgRef>1</MsgRef> 
     <CmdRef>0</CmdRef> 
     <Cmd>SyncHdr</Cmd> 
     <Data>212</Data> 
     </Status> 
    <Status> 
     <MsgRef>1</MsgRef> 
     <CmdRef>2</CmdRef> 
     <CmdID>2</CmdID> 
     <Cmd>Alert</Cmd> 
     <Data>200</Data> 
    </Status> 
    <Status> 
     <CmdID>3</CmdID> 
     <MsgRef>1</MsgRef> 
     <CmdRef>3</CmdRef> 
     <Cmd>Replace</Cmd> 
     <Data>200</Data> 
    </Status> 
    <Get> 
     <CmdID>4</CmdID> 
     <Item> 
      <Target> 
       <LocURI>./Vendor/MSFT/Registry/HKLM/Software/Microsoft/DeviceEncryption/Enabled</LocURI> 
      </Target> 
     </Item> 
    </Get> 
    </SyncBody> 
</SyncML> 

Клиент посылает свой ответ:

<SyncML xmlns="SYNCML:SYNCML1.2"> 
    <SyncHdr> 
    <VerDTD>1.2</VerDTD> 
    <VerProto>DM/1.2</VerProto> 
    <SessionID>E</SessionID> 
    <MsgID>2</MsgID> 
    <Target> 
     <LocURI>https://ssl.../enrollment/omadmservice.php</LocURI> 
    </Target> 
    <Source> 
     <LocURI>IMEI:35...64</LocURI> 
    </Source> 
    </SyncHdr> 
    <SyncBody> 
    <Status> 
     <CmdID>1</CmdID> 
     <MsgRef>1</MsgRef> 
     <CmdRef>0</CmdRef> 
     <Cmd>SyncHdr</Cmd> 
     <Chal> 
     <Meta> 
      <Format xmlns="syncml:metinf">b64</Format> 
      <Type xmlns="syncml:metinf">syncml:auth-md5</Type> 
      <NextNonce xmlns="syncml:metinf">kjjz6FyCYuYm9VUsSaHfKmj98GGfh9yeLvv8hlMNZak=</NextNonce> 
     </Meta> 
     </Chal> 
     <Data>212</Data> 
    </Status> 
    <Status> 
     <CmdID>2</CmdID> 
     <MsgRef>1</MsgRef> 
     <CmdRef>4</CmdRef> 
     <Cmd>Get</Cmd> 
     <Data>200</Data> 
    </Status> 
    <Results> 
     <CmdID>3</CmdID> 
     <MsgRef>1</MsgRef> 
     <CmdRef>4</CmdRef> 
     <Item> 
     <Source> 
      <LocURI>./Vendor/MSFT/Registry/HKLM/Software/Microsoft/DeviceEncryption/Enabled</LocURI> 
     </Source> 
     <Meta> 
      <Format xmlns="syncml:metinf">int</Format> 
     </Meta> 
     <Data>1</Data> 
     </Item> 
    </Results> 
    <Final/> 
    </SyncBody> 
</SyncML> 

И сервер сохраняет DAT a и сбрасывает соединение.

Может ли кто-нибудь найти ошибку в моей реализации? Что еще ожидает клиент от сервера?

+0

Как вы получили ответ от команды get? Каждая команда Exec, Add, Replace работает для меня, кроме Get Command. Устройство не сообщило результат серверу. –

+0

Попробуйте отправить еще несколько команд вместе с Get - возможно, снова отправить Chal или Cred. – Riho

+0

Он все еще не сообщает о каком-либо результате после ввода в Cred и Chal. В любом случае, в соответствии с документацией WP8 MDM, Chal, кажется, отправляется, если даны неадекватные учетные данные. Может быть, это причина, по которой ваш клиент перестает отвечать? Chal Задает запрос проверки подлинности. Сервер или клиент могут отправить вызов другому, если в исходном сообщении запроса не были указаны учетные данные или неадекватные учетные данные. –

ответ

0

Как я выяснил, проблема была не в моей реализации, а в ошибках документации Microsoft. В своем «WP8 Enterprise Management Protocol 1.2» они исправили несколько опечаток и ошибок в своем протоколе, и теперь соединения работают, как предполагалось.

+0

Hi Riho, Не могли бы вы указать, какая область в doco не содержит правильной информации? – zaitsman

+0

Проверить список изменений, внесенных в документацию – Riho

 Смежные вопросы

  • Нет связанных вопросов^_^