Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.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
C# WCF服务应用程序不允许基本身份验证配置_C#_Asp.net_Wcf_Iis_Basic Authentication - Fatal编程技术网

C# WCF服务应用程序不允许基本身份验证配置

C# WCF服务应用程序不允许基本身份验证配置,c#,asp.net,wcf,iis,basic-authentication,C#,Asp.net,Wcf,Iis,Basic Authentication,我有一个使用.NET Fraweork 4.5.2的WCF服务应用程序和一个将托管管道模式设置为集成的应用程序池。我使用基本身份验证来使用这个WCF服务。我已将应用程序部署到两个环境(dev和qa),在dev中,它工作得非常好,但在qa中,我得到以下错误: 以下是应用程序的IIS身份验证配置: 这是我的web.config: <system.serviceModel> <bindings> <basicHttpBinding>

我有一个使用.NET Fraweork 4.5.2的WCF服务应用程序和一个将
托管管道模式设置为
集成
的应用程序池。我使用基本身份验证来使用这个WCF服务。我已将应用程序部署到两个环境(
dev
qa
),在
dev
中,它工作得非常好,但在
qa
中,我得到以下错误:

以下是应用程序的IIS身份验证配置:

这是我的
web.config

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding>
                <security mode="TransportCredentialOnly">
                    <transport clientCredentialType="Basic" />
                </security>
            </binding>
        </basicHttpBinding>
    </bindings>
    <services>
        <service name="MyProject.IS01" 
                 behaviorConfiguration="ServiceWithMetaData">
            <endpoint name="Default" 
                address="" 
                binding="basicHttpBinding" 
                contract="MyProject.IIS01" />
        </service>
    </services>
    <behaviors>
        <serviceBehaviors>
            <behavior name="ServiceWithMetaData">
                <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
                <serviceDebug includeExceptionDetailInFaults="false" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment 
            aspNetCompatibilityEnabled="true" 
            multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
        <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
        <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
        <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
    </modules>
    <directoryBrowse enabled="true" />
    <validation validateIntegratedModeConfiguration="false" />
</system.webServer>

消息错误的第一个短语对我来说非常奇怪。它说身份验证设置为
Windows
,但正如您在第二个屏幕截图中看到的,Windows身份验证被禁用

配置中是否缺少某些内容?我应该激活IIS所在服务器上的某些功能吗

我提到,我在谷歌上发现的所有问题都与匿名身份验证(而不是基本身份验证)有关


提前感谢。

这是因为您缺少服务端点中的
BindingConfiguration
设置,因此根本不应用该配置。如下图所示进行更改

<bindings>
  <basicHttpBinding>
    <binding name="testbinding">
      <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Basic" />
      </security>
    </binding>
  </basicHttpBinding>
</bindings>


<services>
  <service name="MyProject.IS01" behaviorConfiguration="ServiceWithMetaData">
    <endpoint name="Default" address="" binding="basicHttpBinding" 
 contract="MyProject.IIS01" bindingConfiguration="testbinding" />
  </service>
</services>


iniatial配置有一个绑定名称(我也有一个
bindingConfiguration
atribute指向它),我也有相同的错误。@roroinpho21,请先尝试发布的答案一次,如果不起作用,然后返回确切的错误消息我通过重新启动应用程序池修复了问题