以下Azure通知中心REST响应的含义是:'指定的资源描述无效。&#39 ;?

时间:2014-10-21 21:59:17

标签: azure azure-notificationhub win-universal-app

我正在尝试通过我们的Java后端服务向Azure通知中心注册我的Windows Universal App以获取通知。

我在Visual Studio上调试了应用程序,而它在我的Windows Phone设备上运行。该应用程序可以正确获取ChannelUri并将其传递给我们的Java后端。 (我在我的本地电脑上运行了后端。)

Java后端生成了以下模板注册请求,并尝试将其发送到Azure REST Api:

<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
   <content type="application/xml">
      <WindowsTemplateRegistrationDescription xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
         <Tags>Windows,10204394042027091,broadcast</Tags>
         <ChannelUri>https://db3.notify.windows.com/?token=AwYAAABXiUp%2bD8v1%2bVfWbWLr3FZ3rQcJtPkUgFwaiGZus4GbtkM8zbZ6uQt1NKXpC4FOtYWHDxXvBb3FkoefaozvCYTFiDjhdb3jDuORUDY8zBlkGw1MxY0QjrH7G0fFbW0RXgo%3d</ChannelUri>
         <BodyTemplate><![CDATA[{...}]]></BodyTemplate>
         <WNSHeaders>
            <WNSHeader>
               <Header>X-WNS-Type</Header>
               <Value>wns/raw</Value>
            </WNSHeader>
         </WNSHeaders>
         <TemplateName>geoinfo</TemplateName>
      </WindowsTemplateRegistrationDescription>
   </content>
</entry>

在我看来,这是根据MS Azure REST参考:http://msdn.microsoft.com/en-us/library/azure/dn223265.aspx

仍然,响应包含以下错误:

<Error><Code>400</Code><Detail>The specified resource description is invalid..TrackingId:4ffaabcc-c7f8-4a6c-ab2f-4f65e94427df_G16,TimeStamp:10/21/2014 9:42:52 PM</Detail></Error>

关于Azure问题的任何想法都在这里?

2 个答案:

答案 0 :(得分:1)

试试这个:

  1. 致电Create Registration ID
  2. 将检索到的ID存储在您的数据库中
  3. 致电Create or Update Registration以创建注册
  4. 每次您想要在将来更新该注册时(刷新频道,修改标签...),您只需再次调用创建或更新注册
  5. 我刚刚成功地使用了有效载荷:

    <?xml version="1.0" encoding="utf-8"?>
    <entry xmlns="http://www.w3.org/2005/Atom">
      <title type="text"></title>
      <updated>2014-10-21T23:57:08Z</updated>
      <content type="application/atom+xml;type=entry;charset=utf-8">
        <WindowsTemplateRegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
          <Tags>t1,t2</Tags>
          <ChannelUri>https://db3.notify.windows.com/?token=AwYAAABXiUp%2bD8v1%2bVfWbWLr3FZ3rQcJtPkUgFwaiGZus4GbtkM8zbZ6uQt1NKXpC4FOtYWHDxXvBb3FkoefaozvCYTFiDjhdb3jDuORUDY8zBlkGw1MxY0QjrH7G0fFbW0RXgo%3d</ChannelUri>
          <BodyTemplate><![CDATA[<?xml version="1.0" encoding="utf-16"?><root></root>]]></BodyTemplate>
          <WnsHeaders>
            <WnsHeader>
              <Header>X-WNS-Type</Header>
              <Value>wns/raw</Value>
            </WnsHeader>
          </WnsHeaders>
          <TemplateName>MyTemplate</TemplateName>
        </WindowsTemplateRegistrationDescription>
      </content>
    </entry>
    

答案 1 :(得分:1)

错误消息显然意味着请求缺少必需的XML元素。 我的问题是大写:

WNSHeader WNSHeaders 都应该用Pascal语言编写: WnsHeader WnsHeaders

不幸的是Microsoft's documentation on the API对此有误导性。