0

Windows Phone 8 MDM システムを機能させようとしています。現在、デバイスは正しく登録され、最初の SyncML 要求が行われます。サーバーの初期応答のクエリにも応答しますが、何か気に入らないと思います。理由は、再試行間隔を使用してサーバーへの追加の接続を作成し、その後接続しなくなるためです。

接続を手動で開始すると機能しますが、自動接続は行われません。奇妙なことに、内部では SyncML SessionID カウンターが指定された間隔で増加しますが、デバイスはサーバーに接続しようとさえしません。

これが私の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>

サーバーはデータを保存し、接続を切断します。

誰かが私の実装でバグを見つけることができますか? クライアントはサーバーにさらに何を期待していますか?

4

1 に答える 1

0

問題が私の実装にあるのではなく、バグのある Microsoft ドキュメントにあることがわかりました。「WP8 Enterprise Management Protocol 1.2」では、プロトコルのいくつかのタイプミスと間違いを修正し、接続が想定どおりに機能するようになりました。

于 2013-04-03T05:04:35.840 に答える