我有一个使用.NET Fraweork 4.5.2的WCF服务应用程序和一个Managed pipeline mode
设置为Integrated
的应用程序池。我使用基本身份验证来使用此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的服务器上激活某些功能吗?
我提到我在谷歌上发现的所有问题都与匿名身份验证有关(而不是基本身份验证)。
提前致谢。
答案 0 :(得分:0)
这是因为您错过了服务端点中的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>