基本思路
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>