2011-04-08 69 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