2016-10-19 22 views
0

我有一个使用Windows集成身份验证的Web服务,它可以工作。但是,只有经过反复试错,只最后用具有身份我的配置文件端点部分如下工作:wcf Web服务标识servicePrincipalName需要说明

<identity> 
     <servicePrincipalName value="host/servername" /> 
</identity> 

在哪里“服务器名”是承载Web服务的IIS服务器的名称。

如果我错过了它,IIS拒绝它(甚至没有达到终点)与'验证错误'。

但是,当我最近需要在与Web服务相同的服务器上运行程序时,此错误会因为同样的错误而失败,并且仅当我完全删除身份或将其更改为“host/localhost”时才起作用。

有人可以解释为什么这是因为我真的不明白什么servicePrincipalName /身份真的在做除了工作之外。

谢谢。

+0

你有没有试过[搜索](https://www.bing.com/search?q=servicePrincipalName&go=Submit&qs=n&form=CHRDEF&pc= U316&pq = serviceprincipalname&sc = 8-20&sp = -1&sk =&cvid = E3EBDCBC05F44DAE86A3F33988A31D8B)在这? – Tim

+0

谢谢,我从来没有想到这一点。 –

回答

1

您希望服务使用的用户的名称(在下执行)被放置为ServicePrincipalName的值。

你可以有更简单的参考here.

+0

谢谢。我理解这一点,只是不是为什么身份验证在同一台机器上运行失败,除非我完全删除SPN或将服务器名称更改为localhost。 –