System.ArgumentException:已添加具有相同键的项

时间:2015-08-07 12:45:36

标签: windows-server-2012 adfs

我在Windows Server 2012上配置了ADFS,当我尝试访问https://abc-idfs.cloudapp.net/adfs/ls/IdpInitiatedSignOn.aspx时出现错误:

Exception details: 
System.ArgumentException: An item with the same key has already been added.
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at Microsoft.IdentityServer.Web.HomeRealmModule.FindApplicableRealms(ProtocolContext context, Boolean needsIDPInstance)
   at Microsoft.IdentityServer.Web.HomeRealmModule.DiscoverHomeRealm(PassiveProtocolHandler pHandler, ProtocolContext context)
   at Microsoft.IdentityServer.Web.PassiveProtocolListener.GetAuthenticationMethods(PassiveProtocolHandler protocolHandler, ProtocolContext protocolContext)
   at Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext(WrappedHttpListenerContext context)

我无法理解我哪里出错了

1 个答案:

答案 0 :(得分:0)

从头开始设置新的ADFS服务器时,这种情况多次发生在我身上。在我的情况下,我有PowerShell代码设置服务器,但它总是在脚本运行后给我这个错误所以我知道它是配置中的东西而不是ADFS本身。

所以最后问题出现在我的案例中:声明提供者标识符需要有https://而不是http://

要检查此设置的值,请​​打开AD FS管理UI,展开信任关系,选择声明提供程序信任,选择您的声明提供程序并右键单击并选择属性,然后转到标识符选项卡并查看声明提供程序标识符 - 如果此值没有https://并且您使用证书来处理服务通信,那么您将在日志中获得具有此确切消息的事件ID 364。

364可能出于多种原因,而不仅仅是我在这里提到的那个,但这个问题很简单,很容易被忽视。希望这有助于某人。