我正在将我的 WSE3 服务迁移到 WCF 平台。客户端将是旧版 WSE3 客户端。
为了实现一些要求,我创建了自定义服务行为。服务行为的配置 (in web.config
) 包含该serviceCertificate
元素。
使用设置将此行为应用于我的服务behaviorConfiguration
。现在我想从托管在同一个 IIS 7.5 中的另一个 WCF 服务调用一个 WCF 服务。所以我添加了netTcpBinding
(和 netNamedPipeBinding 太)。当我从任何 WCF 服务调用另一个服务的 OperationContract 时,它曾经给我Access is denied.
错误。我删除了behaviorConfiguration
服务的设置,然后netTcpBinding
(和 netNamedPipeBinding)开始工作。
配置如下:
<services>
<service name="Services.AuthorizationService" behaviorConfiguration="LegacyBehavior">
<endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" >
<endpoint
name="AuthorizationService"
address=""
binding="wsHttpBinding" contract="ServiceContracts.IAuthorizationService" />
<endpoint address="net.pipe://localhost/TestSite/AuthorizationService.svc"
binding="netNamedPipeBinding" contract="ServiceContracts.IAuthorizationService"
name="AuthorizationNamedPipeEndpoint"/>
web.config中的服务行为配置为:
<behavior name="LegacyBehavior">
<dataContractSerializer maxItemsInObjectGraph="2147483646"/>
<serviceAuthorization
principalPermissionMode="Custom"
serviceAuthorizationManagerType="Legacy.AuthorizationManager,Legacy.Services" >
<serviceDebug
httpHelpPageEnabled="true"
includeExceptionDetailInFaults="true" />
<serviceMetadata httpGetEnabled="true" />
<serviceCredentials>
<serviceCertificate
findValue="CN=WSE2QuickStartServer"
storeLocation="LocalMachine"
storeName="My"
x509FindType="FindBySubjectDistinguishedName" />
<issuedTokenAuthentication
audienceUriMode="Always"
certificateValidationMode="PeerOrChainTrust"
revocationMode="NoCheck"
trustedStoreLocation="LocalMachine"
samlSerializerType="Legacy.TokenSerializer, Legacy.Services"
allowUntrustedRsaIssuers="false">
<allowedAudienceUris>
<add allowedAudienceUri="http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue/SAML" />
</allowedAudienceUris>
</issuedTokenAuthentication>
</serviceCredentials>
</behavior>
的绑定配置netTcpBinding
如下:
我想知道,
- 在这种情况下如何使用 netTcpBinding?
- 我可以对同一个服务使用两种不同的行为吗?如果是,如何?
- 如果不是,在这种情况下如何实现命名管道绑定?
- 为什么服务器证书相关的东西会导致
Access is denied
错误?没有内在的例外;刚刚接受了拒绝消息!