0
我有一個自託管服務,它包含一個使用NetTcpBinding和消息級安全性(Basic128)的端點。我的自託管服務沒有驗證遠程客戶端(netTcpBinding,MessageSecurity Basic 128)
可以成功加入該服務,並從位於同一臺機器上的客戶機訪問
但是,如果我建立一個遠程機器客戶端(通過本地網絡),我可以成功添加服務引用,但是當我嘗試運行它,我得到一個SecurityNegotiationException說,「來電者不是由服務認證」
它可能是什麼?
這是該服務的服務模式:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="metadataSupport">
<serviceMetadata />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<netTcpBinding>
<binding name="ProductsServiceTcpBindingConfig">
<security mode="Message">
<message algorithmSuite="Basic128" />
</security>
</binding>
</netTcpBinding>
</bindings>
<services>
<service behaviorConfiguration="metadataSupport" name="Products.ProductsServiceImpl">
<endpoint address="" binding="netTcpBinding" bindingConfiguration="ProductsServiceTcpBindingConfig"
name="NetTcp_IProductsService" contract="Products.IProductsService" />
<endpoint address="mex" binding="mexTcpBinding" name="MetaDataTcpEndpoint"
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8080/Service" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
這在遠程客戶端
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="NetTcp_IProductsService">
<security mode="Message">
<message algorithmSuite="Basic128" />
</security>
</binding>
</netTcpBinding>
</bindings>
<client>
<endpoint address="net.tcp://RemoteServer:8080/Service" binding="netTcpBinding"
bindingConfiguration="NetTcp_IProductsService" contract="ProductsService.IProductsService"
name="NetTcp_IProductsService">
<identity>
<userPrincipalName value="RemoteServer\Rafael" />
</identity>
</endpoint>
</client>
</system.serviceModel>