什么是我的WCF RIA服务uri?

时间:2012-02-27 12:00:01

标签: wcf silverlight-4.0 uri ria

我对Silverlight和WCF RIA服务很新,所以请原谅我的误解。 我的SL客户端中有一个telerik地图组件,它使用来自地图服务器的tile url。我想实现我的自定义提供程序,所以我实现了这个方法:

 protected override Uri GetTile(int tileLevel, int tilePositionX, int tilePositionY)
    {
        int zoomLevel = ConvertTileToZoomLevel(tileLevel);

        string url = this.tileUrlFormat;

        url = ProtocolHelper.SetScheme(url);
        url = url.Replace("{zoom}", zoomLevel.ToString(CultureInfo.InvariantCulture));
        url = url.Replace("{x}", tilePositionX.ToString(CultureInfo.InvariantCulture));
        url = url.Replace("{y}", tilePositionY.ToString(CultureInfo.InvariantCulture));
        url = url.Replace("{type}", googleTileType.ToString());
        return new Uri(url);
    }

适用于在线地图服务器。但是,我想使用我自己的存储在sql server数据库中的tile。

那么,我该怎么办呢?我的意思是如何在我的Web项目中实现WCF RIA服务,以便我的SL客户端调用其URL?我找到了许多在Web项目中定义域服务并在SL中使用它的示例,但是,我想知道它是什么网址? 例如,如果我实现了一个获取x,y,缩放参数并从数据库中检索它的磁贴的域服务,那么它的URL是什么,我可以在我的SL组件中调用它? 我有另一个问题。如果可以这样做,是否可以验证我的用户是否可以调用该服务?怎么样?

1 个答案:

答案 0 :(得分:1)

您不应使用WCF RIA服务来查询磁贴。您需要在服务器上实现一个get方法,该方法接收缩放参数x,y和type,并返回相应的图像。

例如,如果在服务器ASP MVC中使用,则get函数为:

namespace MvcMap.Controllers
{
    public class MapTile : Controller
    {
        public ActionResult GetTile(int zoom, int x, int y, string type="")
        {
            // Add your action logic here
            // return your image
        }
    }
}

调用此MVC操作的url类似于:

http://yourdomain_or_ip/MapTile/GetTile?zoom=10&x=5&y10