Windows phone 8 WP8中的SyncML协议-客户端停止响应

Windows phone 8 WP8中的SyncML协议-客户端停止响应,windows-phone-8,mdm,syncml,Windows Phone 8,Mdm,Syncml,我正在尝试让我的Windows Phone 8 MDM系统正常工作。当前设备已正确注册并发出初始SyncML请求。它还响应服务器初始响应中的查询,但我认为它不喜欢其中的某些内容。原因是它使用重试间隔与服务器建立额外的连接,之后就不再连接了 当我手动启动连接时,它会工作,但不会自动连接。奇怪的是,SyncML SessionID计数器在内部以指定的间隔增加,但设备甚至不尝试连接服务器 这是我的SyncML协议 客户端启动: <SyncML xmlns="SYNCML:SYNCML1.2

我正在尝试让我的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>

1.2
DM/1.2
E
1.
https://ssl.../enrollment/omadmservice.php
IMEI:35…64
里豪
b64
syncml:auth-md5
SoFh6khg4awLYXn2PQOOwQ==
2.
1201
3.
/DevInfo/DevId
IMEI:35…64
...
服务器响应:

<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>

1.2
DM/1.2
E
1.
IMEI:35…64
https://ssl.../enrollment/omadmservice.php
MDMServer
b64
syncml:auth-md5
ryJ+boSmdCoO8BzxXcYSxg==
1.
1.
0
消息头
212
1.
2.
2.
警觉的
200
3.
1.
3.
代替
200
4.
./Vendor/MSFT/Registry/HKLM/Software/Microsoft/DeviceEncryption/Enabled
客户端发送其响应:

<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>

1.2
DM/1.2
E
2.
https://ssl.../enrollment/omadmservice.php
IMEI:35…64
1.
1.
0
消息头
b64
syncml:auth-md5
KJJZ6FYCYUYM9VUSSAHFKMJ98GGFH9YELV8HLMNZAK=
212
2.
1.
4.
得到
200
3.
1.
4.
./Vendor/MSFT/Registry/HKLM/Software/Microsoft/DeviceEncryption/Enabled
int
1.
服务器存储数据并断开连接


有人能在我的实现中找到bug吗?客户端对服务器还有什么期望?

我发现问题不在我的实现中,而是在有缺陷的Microsoft文档中。在他们的“WP8企业管理协议1.2”中,他们修复了协议中的几个打字错误和错误,现在连接可以正常工作。

您是如何从get命令接收结果响应的?除Get命令外,每个Exec、Add、Replace命令都适用于我。设备未将结果报告给服务器。请尝试同时发送一些其他命令以及Get-可能再次发送Chal或Cred。在输入Cred和Chal后,设备仍不会报告任何结果。无论如何,在您的情况下,根据WP8 MDM文档,如果提供的凭证不充分,Chal似乎会被发送。也许这就是你的客户停止回应的原因?Chal指定身份验证质询。如果原始请求消息中未提供凭据或凭据不足,服务器或客户端可以向另一方发送质询。你好,Riho,请指定文档中哪个区域未包含正确的信息?检查文档中的更改列表