0

我有一个 C# & XAML 中的 Metro 应用程序。磁贴会定期更新,我使用 WebAPI 来提供磁贴通知 XML。到目前为止,一切都很好。然后我被告知我不能使用 WebAPI,因为我计划托管它的服务器没有 .NET 4.5。也没有计划很快安装它。我不得不将 WebAPI 更改为一个普通的旧 Web 服务 (.NET 3.5),它做同样的事情 - 返回磁贴通知 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;
        }
4

0 回答 0