我有一个 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;
}