27

在主机上配置的身份验证方案('Anonymous')不允许在绑定'BasicHttpBinding'('Negotiate')上配置的身份验证方案。请确保将 SecurityMode 设置为 Transport 或 TransportCredentialOnly。此外,可以通过 IIS 管理工具、通过 ServiceHost.Authentication.AuthenticationSchemes 属性、在元素的应用程序配置文件中更改此应用程序的身份验证方案、通过更新绑定上的 ClientCredentialType 属性或通过调整来解决此问题HttpTransportBindingElement 上的 AuthenticationScheme 属性。

4

9 回答 9

38

当您没有在本地 IIS Web 服务器中安装身份验证模式时,可能会显示此错误。转到控制面板 -> 程序 -> 打开或关闭 Windows 功能

检查 Internet 信息服务 -> 万维网服务 -> 安全 -> 并启用基本、Windows、摘要式身份验证模式。打开 IIS 并导航到您的应用程序,然后转到身份验证部分并启用所需的身份验证模式。对我来说,身份验证模式在安装后或网络服务器重新启动后没有立即显示。重新启动机器会在 web 应用程序中显示它们。

于 2013-11-24T16:23:02.163 回答
18

如果您在 Visual Studio 中调试时遇到此问题,请选择您的项目并在属性中更改身份验证。

VS赢得认证

于 2017-02-20T19:57:37.657 回答
13

如有必要 -如上所述安装功能,打开 IIS 管理器,打开服务器功能:

在此处输入图像描述

打开“身份验证”功能:

在此处输入图像描述

启用/禁用需要的:

在此处输入图像描述

于 2017-02-21T15:07:54.827 回答
2

这发生在我身上,因为该站点已为 Windows 身份验证配置了 WCF ...

<security mode="Transport">
    <transport clientCredentialType="Windows" />
</security>

但是 IIS 禁用了 Windows 身份验证并启用了匿名身份验证。修复是在 IIS 中启用 Windows 身份验证。

于 2020-04-27T03:36:02.880 回答
2

我解决了将 Negotiate 添加到 IIS 身份验证提供程序的问题: 在此处输入图像描述

于 2018-06-26T14:19:28.580 回答
1

当这发生在我身上时,我发现在使用“发现”按钮添加服务引用时,Visual Studio 正在使用“默认网站”来托管我的服务。所以要修复,我必须启用我的服务在 IIS 的“默认网站”上使用的身份验证。由于我使用的是 Windows 身份验证,因此为 IIS 中的“默认网站”启用它,这似乎解决了我的问题。当然,如果您的服务使用其他类型的身份验证,您将必须启用正确的身份验证。

要配置身份验证,请打开 IIS。在“站点”下,选择“默认网站”,然后选择身份验证。

于 2014-02-13T00:59:44.923 回答
0

如果您尝试在 IIS 中为“基本身份验证”配置服务(即,它会提示输入用户名/密码),则应按如下方式设置安全传输设置:

对于基本HttpBinding

<security mode="Transport">
  <transport clientCredentialType="Basic" />
  <message clientCredentialType="UserName" />
</security>

对于 webHttpBinding

<security mode="Transport">
  <transport clientCredentialType="Basic" />
</security>
于 2020-03-25T12:35:56.693 回答
0

只是重新启动 IIS 解决了我的问题

于 2020-03-02T14:20:44.477 回答
0

就我而言,问题在于重构后的服务配置错误。如果服务标签中的 name 属性不指向现有的类,你可能会得到这个异常,这将完全误导你。

所以记住这个名字:

<service behaviorConfiguration="FooBehavior" name="Fully.Qualified.Name.Of.Class.Implementing.Service.Contract.Here"> 
于 2018-07-12T11:38:03.290 回答