CryptographicException堆栈跟踪中没有行号

时间:2014-08-28 20:26:13

标签: c# asp.net-mvc cryptography adfs2.0

我在事件查看器中遇到异常,其中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>

1 个答案:

答案 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/中指出

我的案子花了更长的时间,因为我有额外的钥匙。