我在事件查看器中遇到异常,其中ADFS 2.0和MVC 4应用程序通过Visual Studio的身份和访问工具配置,应用程序在IIS 7.5上运行
Exception type: CryptographicException
Exception message: Key not valid for use in specified state.
我无法重现错误。它在我们的公共网站上间歇性地发生,我通过事件查看器看到它。
即使这是单个服务器部署而且没有涉及服务器场(除了ADFS有一个主服务器和一个代理服务器),为了便于我,我通过阅读本文http://www.cloudidentity.com/blog/2013/01/28/running-wif-based-apps-in-windows-azure-web-sites-4/
上述例外情况消失了,但现在出现了同样的间歇频率:
Exception type: CryptographicException
Exception message: Error occurred during a cryptographic operation.
事件查看器的堆栈跟踪中没有行号。此应用程序中的任何其他异常都会给出一个行号,但这个不行。如果我没有行号,如何找出导致此异常的代码段?就像我说我无法重现它所以没有使用调试,或者是它?
修改
我注意到web.config中的keys节点下有两个元素。我不需要一个吗?
<system.identityModel>
<identityConfiguration>
<issuerNameRegistry type="System.IdentityModel.Tokens.ValidatingIssuerNameRegistry, System.IdentityModel.Tokens.ValidatingIssuerNameRegistry">
<authority name="http://our-FS-server/adfs/services/trust">
<keys>
<add thumbprint="abcd" />
<add thumbprint="efgh" />
</keys>
</authority>
</issuerNameRegistry>
</identityConfiguration>
</system.identityModel>
答案 0 :(得分:0)
看起来web.config中的额外键条目是原因。我删除了其中一个,并且在3个小时内没有看到异常。早些时候,这种例外情况更为频繁。因此,也许解决方案是允许像Vittorio Bertocci这样的网络农场cookie在他的博客文章http://www.cloudidentity.com/blog/2013/01/28/running-wif-based-apps-in-windows-azure-web-sites-4/中指出
我的案子花了更长的时间,因为我有额外的钥匙。