2011-04-08 66 views
2

我的.NET 4.0 Web應用程序項目中有一個WCF終點。使用VS2010 WCF測試客戶端,我可以正確連接到該服務。但是,當我去使用該服務時,我收到一條通用錯誤消息:身份驗證模式=「窗體」導致WCF終點錯誤

內容類型text/html; charset =響應消息的UTF-8與綁定的內容類型(text/xml; charset = utf-8)不匹配。如果使用自定義編碼器,請確保IsContentTypeSupported方法正確實施。第一個1024個字節的響應是:

我發現,當我從web.config文件中刪除身份驗證服務工作正常:

<authentication mode="Forms"> 
    <forms cookieless="AutoDetect" loginUrl="~/Security/LoginClient.aspx" name="FORMAUTH" /> 
</authentication> 

任何想法如何,我可以刪除這個剛來自身份驗證的服務?

回答

3

您可以排除從窗體身份驗證特定的文件,在web.config中的位置節點:

<location path="MyService.svc"> 
    <system.web> 
     <authorization> 
      <allow users="*" /> 
     </authorization> 
    </system.web> 
</location> 

一個簡單的方法也只是到組的服務相關的文件不需要身份驗證到一個公用文件夾和允許對整個文件夾的訪問:

<location path="MyServiceFolder/"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
</location> 

MSDN上的位置元件上的更多信息:

http://msdn.microsoft.com/en-us/library/b6x6shw7%28vs.71%29.aspx

+1

這沒有解決我的問題,但已經回答了我的問題,所以標記爲正確的答案,並在這裏創建一個新的問題:http://stackoverflow.com/questions/5596304/authentication-mode-forms-causing-redirect- in-wcf-service – SmudgerDan 2011-04-08 14:09:53

+0

這沒有奏效。還有其他建議嗎? – Tawani 2011-12-02 03:21:10