WCF 服务在第一次连接的时候很慢

WCF 服务在第一次连接的时候很慢 第一次总要等很久
WCF 服务在第一次连接的时候很慢 第一次总要等很久

用WCF没办法,改用ASP.NET Web API。

添加Global.asax,在Application_Start中注册Web API的路由,在Global.asax.cs中添加如下代码:

protected void Application_Start(object sender, EventArgs e)
{
    RouteTable.Routes.MapHttpRoute("WebApi", "api/{controller}/{action}/{id}", 
        new { id = RouteParameter.Optional });
}

添加Controllers文件夹,在其中添加类文件DemoController.cs,并让DemoController继承自ApiController。代码如下:

namespace CNBlogsWebApiDemo.Controllers
{
    public class DemoController : ApiController
    {
    }
}

添加ViewModels文件夹,在其中添加Site.cs,并定义Site。

namespace CNBlogsWebApiDemo.ViewModels
{
    public class Site
    {
        public int SiteId { get; set; }
        public string Title { get; set; }
        public string Uri { get; set; }
    }
}

给DemoController添加一个方法SiteList,并写上我们的示例代码。代码如下:

public class DemoController : ApiController
{
    public IList<Site> SiteList(int startId, int itemcount)
    {
        var sites = new List<Site>();
        sites.Add(new Site { SiteId = 1, Title = "test", Uri = "www.cnblogs.cc" });
        sites.Add(new Site { SiteId = 2, Title = "首页", Uri = "www.cnblogs.com" });
        sites.Add(new Site { SiteId = 3, Title = "博问", Uri = "q.cnblogs.com" });
        sites.Add(new Site { SiteId = 4, Title = "新闻", Uri = "news.cnblogs.com" });
        sites.Add(new Site { SiteId = 5, Title = "招聘", Uri = "job.cnblogs.com" });

        var result = (from Site site in sites
                        where site.SiteId > startId
                        select site)
                        .Take(itemcount)
                        .ToList();
        return result;
    }
}