2

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

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

1 回答 1

1

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

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

于 2011-05-30T21:24:54.817 回答