我的Sitecore环境有单独的CM& CD服务器,位于不同的域上。安装WeBlog模块并按照说明设置配置后,我收到以下错误(在this page上突出显示)。
无法满足安全令牌的请求,因为 验证失败。
异常详细信息: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>
我已经和他斗争了几天了,所以任何帮助都会非常感激。
萨德