我的 Sitecore 环境在不同的域上有单独的 CM 和 CD 服务器。按照说明安装WeBlog模块并设置配置后,我收到以下错误(在此页面上突出显示)。
由于身份验证失败,无法满足对安全令牌的请求。
异常详细信息:System.ServiceModel.FaultException:由于身份验证失败,无法满足对安全令牌的请求。
使用防火墙后面的 CM 服务器,最简单的解决方案可能是不用担心身份验证,但我无法让它工作。我现在收到此错误:
无法处理该消息。这很可能是因为操作“ http://tempuri.org/ICommentService/SubmitComment ”不正确,或者因为消息包含无效或过期的安全上下文令牌,或者因为绑定之间不匹配。如果服务由于不活动而中止通道,则安全上下文令牌将无效。为了防止服务过早中止空闲会话,请增加服务端点绑定的接收超时。
CM 服务器(服务器)web.config 如下所示:
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WeBlogBindingConfig">
<security mode="None">
<transport clientCredentialType="None" />
<message establishSecurityContext="false" />
</security>
</binding>
</wsHttpBinding>
<basicHttpBinding>
...
</basicHttpBinding>
</bindings>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<behaviors>
<serviceBehaviors>
<behavior name="Sitecore.Modules.WeBlog.Services.CommentServiceBehaviour">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="Sitecore.Modules.WeBlog.Services.CommentService"
behaviorConfiguration="Sitecore.Modules.WeBlog.Services.CommentServiceBehaviour">
<endpoint address="" binding="wsHttpBinding" contract="Sitecore.Modules.WeBlog.Services.ICommentService" bindingConfiguration="WeBlogBindingConfig">
</endpoint>
</service>
</services>
</system.serviceModel>
CD 服务器(客户端)web.config 如下所示:
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WeBlogBindingConfig">
<security mode="None">
<transport clientCredentialType="None" />
<message establishSecurityContext="false" />
</security>
</binding>
</wsHttpBinding>
<basicHttpBinding>
...
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://cmserver/sitecore modules/web/WeBlog/Comment.svc"
binding="wsHttpBinding" contract="Sitecore.Modules.WeBlog.Services.ICommentService"
name="WeBlogCommentService" bindingConfiguration="WeBlogBindingConfig">
</endpoint>
...
</client>
</system.serviceModel>
我已经为此奋斗了几天,所以任何帮助将不胜感激。
萨德