【问题标题】:Is there a size limit on SyncML Command which can be sent to Windows Phone 8.1?可以发送到 Windows Phone 8.1 的 SyncML 命令是否有大小限制?
【发布时间】:2014-09-18 14:03:27
【问题描述】:

我可以发送到 Windows Phone 8.1 设备的 SyncML 命令是否有大小限制(我正在使用 Lumia 1320 进行测试。)?当我向设备发送以下 SyncML 命令时,我没有收到来自设备的响应:

<?xml version="1.0" ?><SyncML xmlns="SYNCML:SYNCML1.2"><SyncHdr/><SyncBody><Atomic><CmdID>InstallProfile</CmdID><Replace><CmdID>res-email-passcode.passwordpolicy</CmdID><Item><Data>0</Data><Target><LocURI>./Vendor/MSFT/DeviceLock/Provider/MEMDM/DevicePasswordEnabled</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/DeviceLock/Provider/MEMDM/AllowSimpleDevicePassword</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>4</Data><Target><LocURI>./Vendor/MSFT/DeviceLock/Provider/MEMDM/MinDevicePasswordLength</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/DeviceLock/Provider/MEMDM/AlphanumericDevicePasswordRequired</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>0</Data><Target><LocURI>./Vendor/MSFT/DeviceLock/Provider/MEMDM/DevicePasswordExpiration</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>0</Data><Target><LocURI>./Vendor/MSFT/DeviceLock/Provider/MEMDM/DevicePasswordHistory</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>0</Data><Target><LocURI>./Vendor/MSFT/DeviceLock/Provider/MEMDM/MaxDevicePasswordFailedAttempts</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>0</Data><Target><LocURI>./Vendor/MSFT/DeviceLock/Provider/MEMDM/MaxInactivityTimeDeviceLock</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/DeviceLock/Provider/MEMDM/MinDevicePasswordComplexCharacters</LocURI></Target><Meta><Format>int</Format></Meta></Item></Replace><Replace><CmdID>res-email-passcode.restrictionspolicy</CmdID><Item><Data>0</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/System/AllowStorageCard</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>0</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/Security/RequireDeviceEncryption</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>2</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/System/AllowTelemetry</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/Security/AllowManualRootCertificateInstallation</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/System/AllowUserToResetPhone</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/Experience/AllowSyncMySettings</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/Experience/AllowCortana</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/AboveLock/AllowActionCenterNotifications</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/Experience/AllowSharingOfOfficeFiles</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/Experience/AllowSaveAsOfOfficeFiles</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/Experience/AllowVoiceRecording</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/Search/AllowStoringImagesFromVisionSearch</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/Search/AllowSearchToUseLocation</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/Connectivity/AllowCellularDataRoaming</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/Connectivity/AllowUSBConnection</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/System/AllowLocation</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/Experience/AllowScreenCapture</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/Browser/AllowBrowser</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/ApplicationManagement/AllowStore</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/Accounts/AllowAddingNonMicrosoftAccountsManually</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/Experience/AllowCopyPaste</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/Connectivity/AllowVPNOverCellular</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/Connectivity/AllowVPNRoamingOverCellular</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>2</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/Connectivity/AllowBluetooth</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/WiFi/AllowManualWiFiConfiguration</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/WiFi/AllowWiFiHotSpotReporting</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/WiFi/AllowWiFi</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/WiFi/AllowInternetSharing</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>1</Data><Target><LocURI>./Vendor/MSFT/PolicyManager/My/WiFi/AllowAutoConnectToWiFiSenseHotspots</LocURI></Target><Meta><Format>int</Format></Meta></Item></Replace><Replace><CmdID>res-email-passcode.emailpolicy</CmdID><Item><Data/><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D</LocURI></Target><Meta><Format>node</Format></Meta></Item><Item><Data>Email</Data><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D/ACCOUNTTYPE</LocURI></Target><Meta><Format>chr</Format></Meta></Item><Item><Data>some@email.com</Data><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D/AUTHNAME</LocURI></Target><Meta><Format>chr</Format></Meta></Item><Item><Data>0</Data><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D/AUTHREQUIRED</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data/><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D/AUTHSECRET</LocURI></Target><Meta><Format>chr</Format></Meta></Item><Item><Data/><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D/DOMAIN</LocURI></Target><Meta><Format>chr</Format></Meta></Item><Item><Data>-1</Data><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D/DWNDAY</LocURI></Target><Meta><Format>chr</Format></Meta></Item><Item><Data>smtp:25</Data><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D/INSERVER</LocURI></Target><Meta><Format>chr</Format></Meta></Item><Item><Data>15</Data><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D/LINGER</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data>Some Mail</Data><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D/NAME</LocURI></Target><Meta><Format>chr</Format></Meta></Item><Item><Data>smtp:25</Data><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D/OUTSERVER</LocURI></Target><Meta><Format>chr</Format></Meta></Item><Item><Data/><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D/REPLYADDR</LocURI></Target><Meta><Format>chr</Format></Meta></Item><Item><Data>EMail</Data><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D/SERVICENAME</LocURI></Target><Meta><Format>chr</Format></Meta></Item><Item><Data>imap4</Data><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D/SERVICETYPE</LocURI></Target><Meta><Format>chr</Format></Meta></Item><Item><Data/><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D/SMTPALTAUTHNAME</LocURI></Target><Meta><Format>chr</Format></Meta></Item><Item><Data/><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D/SMTPALTDOMAIN</LocURI></Target><Meta><Format>chr</Format></Meta></Item><Item><Data>0</Data><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D/SMTPALTENABLED</LocURI></Target><Meta><Format>int</Format></Meta></Item><Item><Data/><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D/SMTPALTPASSWORD</LocURI></Target><Meta><Format>chr</Format></Meta></Item><Item><Data>0</Data><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D/TAGPROPS/8128000B</LocURI></Target></Item><Item><Data>0</Data><Target><LocURI>./Vendor/MSFT/EMAIL2/%7B4b3b88ed-9834-44c8-b767-8dc3472aea25%7D/TAGPROPS/812C000B</LocURI></Target></Item></Replace></Atomic></SyncBody></SyncML>

但是,如果我减少限制命令中的项目数,我可以得到设备的响应。单独发送完整的限制列表也可以。这是由于 Windows Phone 8.1 的 MDM 设计造成的吗?还是我做错了什么?

【问题讨论】:

    标签: windows-phone-8.1 mdm


    【解决方案1】:

    我想通了!

    显然 SyncML 命令没有明显的大小限制。但是有用于运行服务器的 Apache Tomcat。 Tomcat 将消息的最大大小限制为 8KB,超出此范围的任何消息都将被“chunked”,即作为多部分消息发送。 Windows Phone 8 不接受“分块”消息。 解决方案是通过在servlet中设置响应数据的缓冲区大小,手动强制Tomcat将大于8KB的消息作为单个包发送:

    response.setBufferSize(responseData.length());
    

    这将强制 Tomcat 将整个消息作为单个包发送。现在该命令起作用了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多