2011-12-21 55 views
0

因此this question具有與我的問題完全相同的症狀。WCF說我的設置需要'匿名'身份驗證 - 但我不想要他們

此服務的安全設置需要「匿名」身份驗證,但它沒有爲承載此服務的IIS應用程序啓用。

但是,我已經從我的web配置中刪除了mex端點,我仍然收到相同的錯誤。我的web配置是這樣的:

<system.serviceModel> 
<services> 
    <service name="xxx.MessageHub.MessageHubService" 
      behaviorConfiguration="default"> 
    <endpoint binding="wsHttpBinding" 
       contract="xxx.MessageHub.IMessageHubService" /> 
    </service> 
</services> 
    <behaviors> 
    <endpointBehaviors> 
    </endpointBehaviors> 
     <serviceBehaviors> 
      <behavior name="default"> 
       <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> 
       <serviceMetadata httpGetEnabled="true"/> 
       <!-- 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"/> 
     <serviceAuthorization principalPermissionMode="UseWindowsGroups" /> 
      </behavior> 

     </serviceBehaviors> 
    </behaviors> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="credsOnly"> 
       <security mode="TransportCredentialOnly"> 
        <transport clientCredentialType="Windows"></transport> 
       </security> 
      </binding> 
     </basicHttpBinding> 
     <wsHttpBinding> 
      <binding name="transport"> 
       <security mode="Transport"> 
        <transport clientCredentialType="Windows"></transport> 
       </security> 
      </binding> 
     </wsHttpBinding> 
    </bindings> 
</system.serviceModel> 

我正在與IIS6兼容性的應用程序添加到IIS7(因爲我們的督促服務器上運行IIS6 - 我得到相同的異常,當部署到測試服務器)。

我需要修改哪些設置才能使這些內容有效?

+0

您在發佈的問題中嘗試了其他選項嗎? _Alternativelly你啓用匿名訪問在IIS和你的web.config你確保匿名訪問被拒絕._ – 2011-12-21 14:20:06

+0

我不知道如果該設置將在我們的環境中工作 - 雖然如果我不能得到這個解決它可能是值得檢查。 – 2011-12-21 14:29:02

回答

0

我能夠按照這個msdn post發現的步驟來解決這個問題,略作修改:

  1. 右鍵單擊WCF服務的Web.config文件,然後單擊編輯WCF配置
  2. 在配置編輯器的配置部分中,選擇綁定文件夾。
  3. 在裝訂部分中,選擇新裝訂配置
  4. 在創建新綁定對話框中,選擇wsHttpBinding。 單擊確定。
  5. 設置名稱的綁定配置爲一些邏輯和可識別的名稱;例如,WsHttpEndpointBinding
  6. 單擊安全選項卡。
  7. 通過從下拉菜單中選擇此選項,將模式屬性設置爲運輸
  8. 通過選擇從下拉列表中該選項設置TransportClientCredentialTypeNTLM

  9. 配置部分,選擇WsHttpEndpoint
  10. 通過從下拉列表中選擇此選項,將BindingConfiguration屬性設置爲WsHttpEndpointBinding。 這將綁定配置設置與綁定相關聯。

  11. 在配置編輯器的文件菜單上,單擊保存。

(據我所知)這提供了使用集成身份驗證(但不是Windows集成)的身份驗證。

相關問題