基本思路

1、新建WCF应用程序
2、注册路由(可省略,则用/….svc/….访问)
配置文件

  <appSettings>    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />  appSettings>  <system.web>    <compilation debug="true" targetFramework="4.5.2" />    <httpRuntime targetFramework="4.5.2"/>  system.web>  <system.serviceModel>    <bindings>      <webHttpBinding>        <binding name="NewBinding0" />      webHttpBinding>    bindings>    <services>      <service name="WcfService4.Service1">        <endpoint address="/service" behaviorConfiguration="web" binding="webHttpBinding"          bindingConfiguration="" contract="WcfService4.IService1" />      service>    services>    <behaviors>      <serviceBehaviors>        <behavior>                    <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>                    <serviceDebug includeExceptionDetailInFaults="false"/>        behavior>      serviceBehaviors>      <endpointBehaviors>        <behavior name="web">          <webHttp />        behavior>      endpointBehaviors>    behaviors>    -->    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />  system.serviceModel>  <system.webServer>    <modules runAllManagedModulesForAllRequests="true"/>        <directoryBrowse enabled="true"/>  system.webServer>

访问uri:http://localhost:27472/Service1.svc/service/GetData/1
3、写接口和.svc(服务) 与WCF库完全相同
4、Release模式下生成项目并发布(避免源代码暴露)
5、IIS下托管
托管成网站(添加网站),确定端口
访问:http://localhost:端口号/Service1.svc/service/GetData/1
localhost可改为IP地址


注意

服务引用BLL、DAL+EF之类的,引用项目,并把相关配置拷贝到最后服务的配置文件里面
比如,数据库连接字符串,EF相关配置,其他功能授权相关内容等等


配置文件参考
服务器发布后的配置文件:(Web.config)  <appSettings>    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />  appSettings>  <system.web>    <compilation debug="true" targetFramework="4.5" />    <httpRuntime targetFramework="4.5" />  system.web>  <system.serviceModel>    <bindings>      <webHttpBinding>        <binding name="NewBinding0" />      webHttpBinding>    bindings>    <services>      <service name="WcfService4.Service1">        <endpoint address="/service" behaviorConfiguration="web" binding="webHttpBinding" bindingConfiguration="" contract="WcfService4.IService1" />      service>    services>    <behaviors>      <serviceBehaviors>        <behavior>                    <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />                    <serviceDebug includeExceptionDetailInFaults="false" />        behavior>      serviceBehaviors>      <endpointBehaviors>        <behavior name="web">          <webHttp />        behavior>      endpointBehaviors>    behaviors>    -->    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />  system.serviceModel>  <system.webServer>    <modules runAllManagedModulesForAllRequests="true" />        <directoryBrowse enabled="true" />        <handlers>            <remove name="ISAPI-dll" />            <add name="test2" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="D:\WcfService4\bin\WcfService4.dll" resourceType="File" preCondition="bitness32" />            <add name="test" path="*.dll" verb="*" modules="IsapiModule" scriptProcessor="Dhua555:\WcfService4\bin\WcfService4.dll" resourceType="File" preCondition="bitness32" />        handlers>  system.webServer>