此服务的安全设置需要Windows身份验证

时间:2011-02-16 22:35:01

标签: asp.net-mvc wcf iis iis-6

我有一个ASP.NET MVC站点,其中包含托管在负载平衡的Intranet站点(2台服务器)上的WCF SVC。据我所知,出于安全原因,我们的Web服务器团队不允许对我们的Intranet Web应用程序进行匿名身份验证,默认情况下使用Windows身份验证。我可以在localhost上访问SVC,但在尝试访问服务器时,我收到以下错误消息:

  

System.NotSupportedException:安全性   此服务的设置需要   Windows身份验证,但事实并非如此   为IIS应用程序启用了   托管这项服务。

我在StackOverflow上发现了类似的问题,给出的答案并没有解决我的具体问题。这是我目前服务区域的web.config ......

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
    <client />
    <bindings>
      <basicHttpBinding>
        <binding name="basicHttpBinding_IClarityIntegration">
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Windows" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="ClarityIntegrationBehavior">
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
      <service behaviorConfiguration="ClarityIntegrationBehavior"
        name="ClarityIntegration.MVC.Web.Services.ClarityIntegration">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicHttpBinding_IClarityIntegration"
          contract="ClarityIntegration.MVC.Web.Services.IClarityIntegration">
        </endpoint>
      </service>
    </services>
  </system.serviceModel>

1 个答案:

答案 0 :(得分:1)

此问题实际上是由WCF服务本身内的异常引起的。不确定为什么它最终以这种方式响应,但在找到异常并修复它之后,这个问题就消失了。