zoukankan      html  css  js  c++  java
  • WCF服务的IIS托管(网站托管)

    基本思路

    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>
              <!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false -->
              <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
              <!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->
              <serviceDebug includeExceptionDetailInFaults="false"/>
            </behavior>
          </serviceBehaviors>
          <endpointBehaviors>
            <behavior name="web">
              <webHttp />
            </behavior>
          </endpointBehaviors>
        </behaviors>
        <!--<protocolMapping>
            <add binding="basicHttpBinding" scheme="http" />
        </protocolMapping>-->
        <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
      </system.serviceModel>
      <system.webServer>
        <modules runAllManagedModulesForAllRequests="true"/>
        <!--
            若要在调试过程中浏览 Web 应用程序根目录,请将下面的值设置为 True。
            在部署之前将该值设置为 False 可避免泄露 Web 应用程序文件夹信息。
          -->
        <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>
              <!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false -->
              <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
              <!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->
              <serviceDebug includeExceptionDetailInFaults="false" />
            </behavior>
          </serviceBehaviors>
          <endpointBehaviors>
            <behavior name="web">
              <webHttp />
            </behavior>
          </endpointBehaviors>
        </behaviors>
        <!--<protocolMapping>
            <add binding="basicHttpBinding" scheme="http" />
        </protocolMapping>-->
        <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
      </system.serviceModel>
      <system.webServer>
        <modules runAllManagedModulesForAllRequests="true" />
        <!--
            若要在调试过程中浏览 Web 应用程序根目录,请将下面的值设置为 True。
            在部署之前将该值设置为 False 可避免泄露 Web 应用程序文件夹信息。
          -->
        <directoryBrowse enabled="true" />
    <!--以下是IIS托管后自动添加的部分-->
            <handlers>
                <remove name="ISAPI-dll" />
                <add name="test2" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="D:WcfService4inWcfService4.dll" resourceType="File" preCondition="bitness32" />
                <add name="test" path="*.dll" verb="*" modules="IsapiModule" scriptProcessor="Dhua555:WcfService4inWcfService4.dll" resourceType="File" preCondition="bitness32" />
            </handlers>
      </system.webServer>
  • 相关阅读:
    virtualbox+vagrant学习-2(command cli)-19-vagrant box命令
    virtualbox+vagrant学习-2(command cli)-24-Aliases别名
    virtualbox+vagrant学习-2(command cli)-23-vagrant version命令
    virtualbox+vagrant学习-2(command cli)-22-vagrant validate命令
    如何快速学习一门技术或进入一个岗位
    EL表达式详解
    关于JSP乱码问题
    java mail使用qq邮箱发邮件的配置方法
    数据库命名规范
    java中的Serializable接口的作用
  • 原文地址:https://www.cnblogs.com/Lulus/p/7873240.html
Copyright © 2011-2022 走看看