C#とXAMLでMetroアプリを使用しています。タイルは定期的に更新され、WebAPIを使用してタイル通知XMLを提供しました。ここまでは順調ですね。次に、WebAPIをホストする予定のサーバーに.NET 4.5がないため、WebAPIを使用できないと言われました。すぐにインストールする予定もありません。WebAPIを、同じことを行う単純な古いWebサービス(.NET 3.5)に変更する必要がありました。タイル通知XMLを返します。HTTP-GETを有効にして(セキュリティ上の懸念があることはわかっています)、次のようにWebサービスを呼び出すことができました-
http://server/TileNotifications.asmx/GetTileData?user=user@domain.com
しかし、切り替えてから、タイルは更新されていません。Fiddlerをチェックして、アプリがWebサービスにアクセスし、XMLが正しく返されることを確認しました。ただし、タイルは更新されません。WebAPIに置き換えると、タイルが更新されます。
Webサービスで何か特別なことをする必要がありますか?カスタム属性で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;
}