繁体   English   中英

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

[英]WCF Service Application does not allow basic authentication configuration

我有一个使用.NET Fraweork 4.5.2的WCF服务应用程序,以及一个将Managed pipeline mode设置为Integrated的应用程序池。 我使用基本身份验证来使用此WCF服务。 我已经将应用程序部署到两个环境( devqa )中,在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的服务器上激活某些功能?

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

提前致谢。

这是因为您在服务端点中缺少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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM