使用Web服务返回的XML更新磁贴通知

时间:2012-10-16 00:00:29

标签: web-services xaml microsoft-metro

我在C#中有一个Metro应用程序。 XAML。磁贴定期更新,我使用WebAPI来提供磁贴通知XML。到现在为止还挺好。然后我被告知我不能使用WebAPI作为我计划托管它的服务器没有.NET 4.5。没有计划很快安装它。我不得不将WebAPI更改为一个普通的旧Web服务(.NET 3.5),它执行相同的操作 - 返回tile通知XML。我启用了HTTP-GET(我知道,安全问题)并能够像这样调用web服务 -

http://server/TileNotifications.asmx/GetTileData?user=user@domain.com

但是自从我进行切换以来,瓷砖没有更新。我检查了Fiddler并确保应用程序正在访问Web服务并正确地返回XML。但是瓷砖没有更新。如果我用WebAPI替换它,则会更新切片。

我是否需要对Web服务执行任何特殊操作?比如使用自定义属性装饰Web方法?这是我的网络服务代码 -

[WebMethod]
        public XmlDocument GetTileData(string user)
        {
           // snip

            var xml = new XmlDocument();
            xml.LoadXml(string.Format(@"<tile>
                                      <visual>
                                        <binding template='TileWideSmallImageAndText02'>
                                          <image id='1' src='http://server/images/{0}_wide.png'/>
                                          <text id='1'>Custom Field : {1}/text>
                                          <text id='2'>Custom Field : {2}</text>
                                          <text id='3'>Custom Field : {3}</text>
                                        </binding>
                                        <binding template='TileSquarePeekImageAndText01'>
                                          <image id='1' src='http://server/images/{0}_square.png'/>
                                          <text id='1'>Custom Field</text>
                                          <text id='2'>{1}</text>
                                        </binding>    
                                      </visual>
                                    </tile>", value1, value2, value3, value4));

            return xml;
        }

0 个答案:

没有答案