2

我的 .NET 4.0 Web 应用程序项目中有一个 WCF 端点。使用 VS2010 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>

有什么想法可以从身份验证中删除此服务吗?

4

1 回答 1

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 上 location 元素的更多信息:

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

于 2011-04-08T10:57:42.810 回答