C# WCF服务应用程序不允许基本身份验证配置
我有一个使用.NET Fraweork 4.5.2的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>
托管管道模式设置为集成的应用程序池。我使用基本身份验证来使用这个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,请先尝试发布的答案一次,如果不起作用,然后返回确切的错误消息我通过重新启动应用程序池修复了问题