定义web.config端点和注册global.asax路由有什么区别?

时间:2011-02-13 20:33:57

标签: wcf endpoint wcf-endpoint

在web.config中定义端点和在global.asax(用于服务)中注册路由之间有什么区别,如下所示:

protected void Application_Start(object sender, EventArgs e)    
{    
    RouteTable.Routes.Add(
        new ServiceRoute(
            "", 
            new WebServiceHostFactory(), 
            typeof(PersonService)
        )
    );    
}

1 个答案:

答案 0 :(得分:1)

就运行时而言,端点是相同的。但对于IIS托管的服务,如果不使用路由,则端点地址将始终包含.svc,即http://your-computer/app/service.svc/endpoint1。有些人不喜欢它,特别是对于REST服务,其中.svc不属于 URL。

使用路由的缺点是你需要使用ASP.NET管道,这对某些服务来说是一个问题(IIRC它的性能损失很小,默认情况下WCF服务不允许它,你需要明确允许ASP.NET兼容模式。)