zoukankan      html  css  js  c++  java
  • WCF自定义地址路由映射(不用svc文件)

    一般在创建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(new System.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中<serviceHostingEnvironment multipleSiteBindingsEnabled="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 订单服务(2)
    移动应用接口的授权和安全
    数据库服务器死锁的解决方法 (转)
    WCF 订单服务(3)
    sqlservice 表分区方法
    基于.NET解决方案的架构和框架
    IIS7架构原理
    多线程的同步和通信
    【原创】关于wince OS开发面试问题的总结系列之OAL
    【原创】关于noot的学习笔记
  • 原文地址:https://www.cnblogs.com/johnblogs/p/9405275.html
Copyright © 2011-2022 走看看