首页 文章

WCF异常:此服务的安全设置需要'Anonymous'身份验证

提问于
浏览
0

我在VisualStudio 2010中创建一个简单的WCF服务 . 我正在使用basicHttpBinding方法 .

当我在浏览器中查看.svc时,我收到以下错误:

“此服务的安全设置需要Windows身份验证,但未为承载此服务的IIS应用程序启用 . ”

我的web.config看起来像,

<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpEndpointBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>
</bindings>



    <services>
      <service behaviorConfiguration="IAManagement.Service1Behavior"
        name="IAManagement.Service1">
        <endpoint address="" binding="wsHttpBinding" contract="IAManagement.IService1">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
      <service behaviorConfiguration="IAManagement.CreateIABehavior"
        name="IAManagement.CreateIA">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicHttpEndpointBinding"
          name="BasicHttpEndpoint" contract="IAManagement.ICreateIA">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="IAManagement.Service1Behavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
        <behavior name="IAManagement.CreateIABehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

任何人都可以帮助我解决这个问题吗?谢谢

1 回答

  • 0

    您的配置如下:

    <binding name="BasicHttpEndpointBinding"> <security mode="TransportCredentialOnly"> <transport clientCredentialType="Windows" /> </security> </binding>
    

    是使用Windows身份验证验证客户端,并且尚未在IIS上配置相同的设置 .

    如果您希望客户端身份验证类型为Windows,则进入IIS并选择虚拟目录,您可以找到名为“身份验证”的部分 . 双击,您可以找到“Windows身份验证”作为其中一个元素,其状态应为“已启用”,以使您的Web服务正常工作 .

    如果您不想要任何类型的身份验证,则需要将安全模式设置为none,这将在浏览器中显示您的服务 .

相关问题