我有一个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>
答案 0 :(得分:1)
此问题实际上是由WCF服务本身内的异常引起的。不确定为什么它最终以这种方式响应,但在找到异常并修复它之后,这个问题就消失了。