【发布时间】:2015-11-18 13:14:52
【问题描述】:
全部,
环境: ASP.NET 4.0
IIS 7(或更高版本)
SL 组件使用的 WCF 服务
身份验证: 匿名/表格
当我尝试浏览到我的 WCF Web 服务(使用浏览器)时,我的 Web 服务出现以下异常,我需要消除此错误:
在主机上配置的身份验证方案('IntegratedWindowsAuthentication')不允许在绑定'BasicHttpBinding'('Anonymous')上配置的那些。请确保将 SecurityMode 设置为 Transport 或 TransportCredentialOnly。此外,可以通过 IIS 管理工具、通过 ServiceHost.Authentication.AuthenticationSchemes 属性、在元素的应用程序配置文件中更改此应用程序的身份验证方案、通过更新绑定上的 ClientCredentialType 属性或通过调整来解决此问题HttpTransportBindingElement 上的 AuthenticationScheme 属性。
我查看了所有相关的帖子,但没有一个对我有帮助。 我没有为我的服务使用任何身份验证或用户/密码传输。 我需要开始工作的服务由 Silverlight 组件使用,并且在 web.config 文件中有这个名称: Htmls.WebStore.Services.WebStoreServices(忽略其他服务)。
这是我的 web.config:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="WebStoreServices_InsecureTransport" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="4096" />
<security mode="None" />
</binding>
<binding name="basicHttpBinding" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647">
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="SitefinityWebApp.Sitefinity.Services.Content.EventsAspNetAjaxBehavior">
<enableWebScript />
</behavior>
<behavior name="EndpBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
<behavior name="Telerik.Sitefinity.Web.Services.LocalizationBehavior" />
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="Htmls.WebStore.Services.WebStoreServices">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="WebStoreServices_InsecureTransport" contract="Htmls.WebStore.Services.IWebStoreServices" />
</service>
<service name="SitefinityWebApp.Sitefinity.Services.Content.Events">
<endpoint address="" behaviorConfiguration="SitefinityWebApp.Sitefinity.Services.Content.EventsAspNetAjaxBehavior" binding="webHttpBinding" contract="SitefinityWebApp.Sitefinity.Services.Content.Events" />
</service>
</services>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
【问题讨论】:
-
错误告诉您 IIS 未配置为与绑定匹配。尝试在 IIS 中开启匿名身份验证,或在域帐户下运行服务的应用程序池。
-
已为站点的匿名用户启用身份验证。应用程序池权限设置为网络服务,这就是服务必须运行的内容。奇怪的是,如果文件夹没有正确的权限或匹配的权限怎么办,这个愚蠢的错误可能会发生???当我回到家时,我会测试这个理论。
标签: asp.net wcf iis-7.5 wcf-binding