码迷,mamicode.com
首页 > 其他好文 > 详细

WCF自定义地址路由映射(不用svc文件)

时间:2014-08-05 02:59:18      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:style   http   os   io   文件   for   art   ar   

一般在创建WCF服务时会用Serivce.svc文件访问,地址如:http://localhost/applicationname/Serivce.svc/Name

现在用路由映射成:http://localhost/applicationname/MyService/Name  方法如下:

首先在Global.asax中的Application_Start事件中添加以下代码:

void Application_Start(object sender, EventArgs e)
    {
        System.Web.Routing.RouteTable.Routes.Add(newSystem.ServiceModel.Activation.ServiceRoute("MyService", new System.ServiceModel.Activation.WebServiceHostFactory(), typeof(Service))); 
    }

其中"MyService"为自定义要在地址栏中映射的名称,如: http://localhost/applicationname/MyService/Name

typeof(Service)中的"Service"为WCF中服务实现类Service.cs,一般继承IService.cs接口

接下来必须在web.config中<serviceHostingEnvironmentmultipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true">的aspNetCompatibilityEnabled设为true

然后再在Service.cs服务类上面添加:

[AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)]  //记得引用using System.ServiceModel.Activation;

public class Service : IService
{

public string GetName(string Name)

     {

return "your name is " + Name;

     }

}

此外还有IService.cs接口中方法声明中设置UriTemplate以接受参数:

[ServiceContract]
public interface IService
{

        [OperationContract, WebGet(UriTemplate = "{Name}", BodyStyle =WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Xml)]
string GetName(string Name);

}

WCF自定义地址路由映射(不用svc文件),布布扣,bubuko.com

WCF自定义地址路由映射(不用svc文件)

标签:style   http   os   io   文件   for   art   ar   

原文地址:http://www.cnblogs.com/zisezhixin/p/3891342.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!