2016-06-18 88 views
1

你好我試圖讓我的WCF serive對HTTPS運行,但我得到這個錯誤如何在WCF WsHttp綁定啓用HTTPS

配置綁定擴展「system.serviceModel /綁定/真正的」找不到。驗證此綁定擴展在system.serviceModel/extensions/bindingExtensions中正確註冊,並且拼寫正確。

任何人都可以告訴我哪裏出錯了。

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.web> 
     <compilation debug="true" /> 
     <authentication mode="None"/> 
     <httpRuntime maxRequestLength="2097151" /> 
     <hostingEnvironment shadowCopyBinAssemblies="false"/> 
     <pages compilationMode="Never"/> 
    </system.web>  
    <!-- When deploying the service library project, the content of the config file must be added to the host's 
    app.config file. System.Configuration does not support config files for libraries. --> 
    <system.serviceModel> 
     <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 

     <services> 
     <service name="MyWebApp.Medical.WebViewer.Wcf.StoreService" behaviorConfiguration="WebViewerServiceBehavior"> 
      <endpoint address="" binding="webHttpBinding" contract="MyWebApp.Medical.WebViewer.ServiceContracts.IStoreService" behaviorConfiguration="WebViewerServiceBehavior" bindingConfiguration="HandleLargeData"/> 
      <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 
     </service> 

     <service name="MyWebApp.Medical.WebViewer.Wcf.PatientService" behaviorConfiguration="WebViewerServiceBehavior"> 
      <endpoint address="" binding="webHttpBinding" contract="MyWebApp.Medical.WebViewer.ServiceContracts.IPatientService" behaviorConfiguration="WebViewerServiceBehavior" bindingConfiguration="HandleLargeData"/> 
      <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 
     </service> 

     <service name="MyWebApp.Medical.WebViewer.Wcf.ObjectQueryService" behaviorConfiguration="WebViewerServiceBehavior"> 
      <endpoint address="" binding="webHttpBinding" contract="MyWebApp.Medical.WebViewer.ServiceContracts.IObjectQueryService" behaviorConfiguration="WebViewerServiceBehavior"> 
      </endpoint>   
      <endpoint address="mex" binding="mexHttpsBinding" bindingConfiguration="" contract="IMetadataExchange">   
      </endpoint> 
     </service> 
     <service name="MyWebApp.Medical.WebViewer.Wcf.ObjectRetrieveService" behaviorConfiguration="WebViewerServiceBehavior"> 
      <endpoint address="" binding="webHttpBinding" contract="MyWebApp.Medical.WebViewer.ServiceContracts.IObjectRetrieveService" behaviorConfiguration="WebViewerServiceBehavior"> 
      </endpoint> 
     </service> 
     <service name="MyWebApp.Medical.WebViewer.Wcf.PacsQueryService" behaviorConfiguration="WebViewerServiceBehavior"> 
      <endpoint address="" binding="webHttpBinding" contract="MyWebApp.Medical.WebViewer.ServiceContracts.IPACSQueryService" behaviorConfiguration="WebViewerServiceBehavior"> 
      </endpoint> 
      <!-- Metadata Endpoints --> 
      <!-- The Metadata Exchange endpoint is used by the service to describe itself to clients. --> 
      <!-- This endpoint does not use a secure binding and should be secured or removed before deployment --> 
      <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 
     </service> 
     <service name="MyWebApp.Medical.WebViewer.Wcf.PACSRetrieveService" behaviorConfiguration="WebViewerServiceBehavior"> 
      <endpoint address="" binding="webHttpBinding" contract="MyWebApp.Medical.WebViewer.ServiceContracts.IPACSRetrieveService" behaviorConfiguration="WebViewerServiceBehavior"> 
      </endpoint> 
     </service> 
     <service name="MyWebApp.Medical.WebViewer.Wcf.AuthenticationService" behaviorConfiguration="WebViewerServiceBehavior"> 
      <endpoint address="" binding="webHttpBinding" contract="MyWebApp.Medical.WebViewer.ServiceContracts.IAuthenticationService" behaviorConfiguration="WebViewerServiceBehavior"> 
      </endpoint> 
      <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 
     </service> 
     <service name="MyWebApp.Medical.WebViewer.Wcf.PatientAccessRightsService" behaviorConfiguration="WebViewerServiceBehavior"> 
      <endpoint address="" binding="webHttpBinding" contract="MyWebApp.Medical.WebViewer.ServiceContracts.IPatientAccessRightsService" behaviorConfiguration="WebViewerServiceBehavior"> 
      </endpoint> 
     </service> 
     <service name="MyWebApp.Medical.WebViewer.Wcf.AnnotationsService" behaviorConfiguration="WebViewerServiceBehavior"> 
      <endpoint address="" binding="webHttpBinding" contract="MyWebApp.Medical.WebViewer.ServiceContracts.IAnnotationsService" behaviorConfiguration="WebViewerServiceBehavior" bindingConfiguration="HandleLargeData"> 
      </endpoint> 
     </service> 
      <service name="MyWebApp.Medical.WebViewer.Wcf.OptionsService" behaviorConfiguration="WebViewerServiceBehavior"> 
       <endpoint address="" binding="webHttpBinding" contract="MyWebApp.Medical.WebViewer.ServiceContracts.IOptionsService" behaviorConfiguration="WebViewerServiceBehavior"> 
       </endpoint> 
      </service> 
      <service name="MyWebApp.Medical.WebViewer.Wcf.AuditLogService" behaviorConfiguration="WebViewerServiceBehavior"> 
       <endpoint address="" binding="webHttpBinding" contract="MyWebApp.Medical.WebViewer.ServiceContracts.IAuditLogService" behaviorConfiguration="WebViewerServiceBehavior"> 
       </endpoint> 
      </service> 
      <service name="MyWebApp.Medical.WebViewer.Wcf.ExportService" 
        behaviorConfiguration="WebViewerServiceBehavior"> 
       <endpoint address="" 
     binding="webHttpBinding" 
     contract="MyWebApp.Medical.WebViewer.ServiceContracts.IExportService" 
     behaviorConfiguration="WebViewerServiceBehavior" 
     bindingConfiguration="HandleLargeData"> 
       </endpoint> 
      </service> 
      <service name="MyWebApp.Medical.WebViewer.Wcf.MonitorCalibrationService" 
        behaviorConfiguration="WebViewerServiceBehavior"> 
       <endpoint address="" 
     binding="webHttpBinding" 
     contract="MyWebApp.Medical.WebViewer.ServiceContracts.IMonitorCalibrationService" 
     behaviorConfiguration="WebViewerServiceBehavior" 
     bindingConfiguration="HandleLargeData"> 
       </endpoint> 
      </service> 
      <service name="MyWebApp.Medical.WebViewer.Wcf.WorklistService" 
        behaviorConfiguration="WebViewerServiceBehavior"> 
       <endpoint address="" 
     binding="webHttpBinding" 
     contract="MyWebApp.Medical.WebViewer.ServiceContracts.IWorklistService" 
     behaviorConfiguration="WebViewerServiceBehavior" 
     bindingConfiguration="HandleLargeData"> 
       </endpoint> 
      </service> 
     </services> 
     <extensions> 
     <bindingExtensions> 
      <add name="basic" type="basicHttpBinding"/> 
      <add name="webBind" type="webHttpBinding"/> 
      <add name="ws*bind" type="wsHttpBinding"/> 
     </bindingExtensions> 
     <behaviorExtensions> 
      <add name="jsonWebHttp" type="MyWebApp.Dicom.Services.ErrorHandler.JsonErrorWebHttpBehaviorElement, MyWebApp.Medical.WebViewer.WCF" /> 
      <add name="CorsSupport" type="MyWebApp.Wcf.CorsSupportBehaviorElement, MyWebApp.Wcf.WebHttpCorsBehavior" /> 
     </behaviorExtensions> 
     </extensions> 
     <bindings> 
     <webHttpBinding> 

      <binding name="HandleLargeData" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" receiveTimeout="01:00:00" openTimeout="01:00:00" closeTimeout="01:00:00" sendTimeout="01:00:00"> 
       <security mode="Transport"> 
       <transport clientCredentialType="None"/> 
       </security> 
       <readerQuotas maxDepth="2147483647" 
        maxStringContentLength="2147483647" 
        maxArrayLength="2147483647" 
        maxBytesPerRead="2147483647" 
        maxNameTableCharCount="2147483647" /> 
      </binding> 
     </webHttpBinding> 
     </bindings> 
     <behaviors> 
     <serviceBehaviors> 
      <behavior name="WebViewerServiceBehavior"> 
       <!-- To avoid disclosing metadata information, 
      set the value below to false and remove the metadata endpoint above before deployment --> 
       <!--<serviceMetadata httpGetEnabled="true" httpGetUrl="anonymous" />--> 
       <serviceMetadata httpsGetBinding="true" httpsGetUrl="anonymous" /> 
       <!-- To receive exception details in faults for debugging purposes, 
      set the value below to true. Set to false before deployment 
      to avoid disclosing exception information --> 
       <serviceDebug includeExceptionDetailInFaults="True" /> 
      </behavior> 
     </serviceBehaviors> 
     <endpointBehaviors> 
      <behavior name="WebViewerServiceBehavior"> 
       <webHttp /> 
       <jsonWebHttp /> 
       <CorsSupport /> 
      </behavior> 
     </endpointBehaviors> 
     </behaviors> 
    </system.serviceModel> 
    <connectionStrings> 
    </connectionStrings> 
    <appSettings> 

    </appSettings> 
    <system.webServer> 
     <staticContent> 
      <remove fileExtension=".dcz"/> 
      <mimeMap fileExtension=".dcz" mimeType="application/x-zip-compressed" /> 
     </staticContent> 
    </system.webServer> 
</configuration> 
+0

它不清楚你在用自定義bindingExtensions做什麼。我相信如果你刪除它的工作節點。 –

+0

我試過了,但沒有奏效 – Luke

回答

0

看起來你已經設置httpsGetBinding的結合未被定義。

嘗試修改此:

<serviceMetadata httpsGetBinding="true" httpsGetUrl="anonymous" /> 

這樣:

<serviceMetadata httpsGetEnabled="true" /> 

而且您提供一個名稱結合 - 'HandleLargeData'。只有在bindingConfiguration屬性中明確設置的服務纔會使用它。也許這是你想要的,但只是需要注意的一點。

相關問題