Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WCF(.NET 4.0)和#x2B;IIS 7和x2B;Windows身份验证错误-“;服务需要Windows身份验证,但未为IIS应用程序启用该服务;_Wcf_Iis_Iis 7_Iis 6 - Fatal编程技术网

WCF(.NET 4.0)和#x2B;IIS 7和x2B;Windows身份验证错误-“;服务需要Windows身份验证,但未为IIS应用程序启用该服务;

WCF(.NET 4.0)和#x2B;IIS 7和x2B;Windows身份验证错误-“;服务需要Windows身份验证,但未为IIS应用程序启用该服务;,wcf,iis,iis-7,iis-6,Wcf,Iis,Iis 7,Iis 6,我们有一个简单的WCF(在.NET 4.0上)服务,它使用Windows身份验证,并且在IIS 7身份验证功能上启用了相同的功能。这在两台服务器上使用相同的设置和相同的配置,但在其中一台服务器上返回错误此服务的安全设置需要Windows身份验证,但没有为承载此服务的IIS应用程序启用它。我在web上检查了所有可能的设置,并尝试了所有选项,如禁用其他身份验证机制等。似乎没有任何效果。有人能指出问题所在吗。 同样,两台服务器上相同的设置在第三台服务器上工作得很好,因为它有问题 <?xml ve

我们有一个简单的WCF(在.NET 4.0上)服务,它使用
Windows
身份验证,并且在IIS 7身份验证功能上启用了相同的功能。这在两台服务器上使用相同的设置和相同的配置,但在其中一台服务器上返回错误
此服务的安全设置需要Windows身份验证,但没有为承载此服务的IIS应用程序启用它。
我在web上检查了所有可能的设置,并尝试了所有选项,如禁用其他身份验证机制等。似乎没有任何效果。有人能指出问题所在吗。 同样,两台服务器上相同的设置在第三台服务器上工作得很好,因为它有问题

<?xml version="1.0"?>
<configuration>
  <appSettings>
    <add key="ABCDbConnection" value="Data Source=xxx; Initial Catalog=sss;Integrated Security=True"/>
    <add key="MetadataDbConnection" value="Data Source=xxx; Initial Catalog=sss;Integrated Security=True"/>
    <add key="UsageEnabled" value="True"/>
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <protocolMapping>
      <add scheme="http" binding="basicHttpBinding" bindingConfiguration="WindowsBasicHttpBinding"/>
    </protocolMapping>
    <behaviors>
<serviceBehaviors>
    <behavior>
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
          <dataContractSerializer maxItemsInObjectGraph="6553600"/>
    </behavior>
</serviceBehaviors>
</behaviors>
<bindings>
  <basicHttpBinding>
    <binding name="WindowsBasicHttpBinding">
      <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Windows"/>
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

此线程中的任何解决方案都有效吗

从这个,它提到这个

如果返回此错误,请单击Windows 已在中启用身份验证 IIS,这意味着存在问题 支持的网络身份验证 为网站提供的方案 服务安装在下。最 可能的原因是它已配置 仅适用于NTLM。我们要指定NTLM 谈判


您是否尝试过使用web.config启用Windows身份验证

<system.web>
       ....
    <authentication mode="Windows" /> 
       .....
</system.web>

....
.....
可能有一台计算机从父配置文件继承了此设置,但没有在引发错误的计算机上继承

您还可以验证是否禁用了匿名身份验证,如下图所示

您的回答中提供的感谢解决了问题。尽管KB用于IIS 6,但它也解决了IIS 7上的此问题:D