代码之家  ›  专栏  ›  技术社区  ›  Daniel

使用ssl(https)发布的wcf问题

  •  4
  • Daniel  · 技术社区  · 15 年前

    我现在有一个webhttp绑定wcf restful服务,它在http上工作得很好,我可以通过webconfig设置制作大尺寸的文章,现在我正试图通过https(ssl)使用它,现在我的工作很好,但我的文章不工作,当文件大小超过一定数量时,它不工作,我想知道为什么这可能是因为我的webconfig规范是一个更大的大小,它在HTTP上很好地工作,这是我的相关webconfig。任何建议

    谢谢

    <system.serviceModel>
    <client>
      <endpoint binding="webHttpBinding" bindingConfiguration="webHttp"
        contract="PrimeStreamInfoServices.IService1" name="Client" />
    </client>
    <bindings>
      <webHttpBinding>
        <binding name="webHttp" maxBufferSize="15000000" maxBufferPoolSize="15000000"
          maxReceivedMessageSize="15000000">
          <readerQuotas maxDepth="15000000" maxStringContentLength="10000000" 
            maxArrayLength="15000000" maxBytesPerRead="15000000" maxNameTableCharCount="10000000" />
          <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None"
              realm="string" />
          </security>
        </binding>
      </webHttpBinding>
    </bindings>
    <services>
      <service behaviorConfiguration="PrimeStreamInfoServices.Service1Behavior"
        name="PrimeStreamInfoServices.Service1">
        <endpoint address="" binding="webHttpBinding"
          bindingConfiguration="webHttp" contract="PrimeStreamInfoServices.IService1" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="PrimeStreamInfoServices.Service1Behavior">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
          <serviceCredentials>
            <!--
            <serviceCertificate storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" findValue="TempCa" />
              -->
          </serviceCredentials>
    
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <diagnostics>
    
      <messageLogging logMalformedMessages="true"  logMessagesAtServiceLevel="true"
        logMessagesAtTransportLevel="true" />
    
    </diagnostics>
    

    1 回复  |  直到 10 年前
        1
  •  9
  •   Tanner    10 年前

    如果要在SSL上使用webhttpbinding,则必须将绑定配置为使用传输安全性,如:

    <security mode="Transport"> 
    

    这个 link 提供有关示例配置的一些详细信息,以处理以下错误:

    找不到与方案http匹配的基地址 具有绑定webhttpbinding的终结点。注册基址计划 是[ http]

    日志中的配置示例:

    <system.serviceModel>
    <behaviors>    
     <endpointBehaviors>
      <behavior name="TestServiceAspNetAjaxBehavior">
       <enableWebScript />
      </behavior>
     </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
    <services>
     <service name="TestService">
      <endpoint address="" behaviorConfiguration="TestServiceAspNetAjaxBehavior"
       binding="webHttpBinding" bindingConfiguration="webBinding" contract="TestService" />
     </service>
    </services>
     <bindings>
       <webHttpBinding>
         <binding name="webBinding">
           <security mode="Transport">
           </security>
         </binding>
       </webHttpBinding>
     </bindings>
    </system.serviceModel>
    
    推荐文章