Asp.net 密钥在指定状态下无效,无法使用。IIS重置后
我试过这个: runas/user:domain\user cmd没有运气 这似乎只有在IIS重置并且我尝试恢复浏览会话时才会发生。因此,我登录到应用程序,在服务器上重置IIS,刷新页面并查看错误 我正在.NET4.0MVC中构建一个应用程序,其中包含一个使用WIF4.0的安全令牌服务。除此之外,一切正常。我甚至尝试使用自定义错误页面,但错误也发生在那里。因此,我也无法显示自定义页面。另外,这是使用位于两个负载平衡服务器上的证书。这种情况发生在我的开发环境中,该环境只包含一台服务器(应用程序、wfe、db在那里运行) 我注意到的一件事是,如果我将我的IIS应用程序池用户切换回网络服务帐户,它将不再抛出错误。我们在应用程序中有一些限制(主要与网络相关),我们需要在应用程序池部分的广告中使用帐户 有人对这个问题有经验吗 密钥在指定状态下无效,无法使用 描述:在执行过程中发生未处理的异常 当前的web请求。请查看堆栈跟踪以了解更多信息 有关错误的信息及其在代码中的来源 例外情况详情: System.Security.Cryptography.CryptographyException:密钥对无效 在指定状态下使用 源错误: 在执行过程中生成了未处理的异常 当前web请求。关于货物来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常 堆栈跟踪: [加密异常:密钥在指定状态下无效。]Asp.net 密钥在指定状态下无效,无法使用。IIS重置后,asp.net,.net,iis,single-sign-on,wif,Asp.net,.net,Iis,Single Sign On,Wif,我试过这个: runas/user:domain\user cmd没有运气 这似乎只有在IIS重置并且我尝试恢复浏览会话时才会发生。因此,我登录到应用程序,在服务器上重置IIS,刷新页面并查看错误 我正在.NET4.0MVC中构建一个应用程序,其中包含一个使用WIF4.0的安全令牌服务。除此之外,一切正常。我甚至尝试使用自定义错误页面,但错误也发生在那里。因此,我也无法显示自定义页面。另外,这是使用位于两个负载平衡服务器上的证书。这种情况发生在我的开发环境中,该环境只包含一台服务器(应用程序、w
System.Security.Cryptography.ProtectedData.Unprotect(字节[]) 加密数据,字节[]可选熵,数据保护范围)+428 Microsoft.IdentityModel.Web.ProtectedDataCookietTransform.Decode(字节[]) 编码)+54 [InvalidOperationException:ID1073:发生加密异常 尝试使用ProtectedData API解密cookie时(请参阅 详细信息的内部异常)。如果您使用的是IIS 7.5,这可能是 由于正在设置的应用程序池上的loadUserProfile设置 设置为false。]
Microsoft.IdentityModel.Web.ProtectedDataCookietTransform.Decode(字节[]) 编码)+146
Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler.ApplyTransforms(字节[]) cookie,布尔出站)+113
Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler.ReadToken(XmlReader 读卡器,安全令牌解析程序令牌解析程序)+647
Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler.ReadToken(字节[]) 令牌,安全令牌解析程序令牌解析程序)+105
Microsoft.IdentityModel.Web.SessionAuthenticationModule.ReadSessionTokenFromCookie(字节[]) sessioncokie)+262
Microsoft.IdentityModel.Web.SessionAuthenticationModule.TryReadSessionTokenFromCookie(SessionSecurityToken& sessionToken)+76
Microsoft.IdentityModel.Web.SessionAuthenticationModule.OnAuthenticationateRequest(对象 发件人,EventArgs EventArgs)+53
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148 System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)+75
此问题与会话cookie有关 WIF默认使用数据保护API()保护会话cookie,并且DPAPI与机器密钥密切相关 如果用于加密会话cookies的密钥发生更改,则会引发此异常 它也可能与你的应用程序托管基础设施有关
- 如果您的应用程序正在网络负载平衡器(NLB)环境中运行
- 如果更改应用程序池设置(例如,更改应用程序池的用户)
- 将负载平衡器配置为使用粘性会话。这意味着您的用户将在会话期间被定向到同一服务器。(我不太喜欢那个)
- 使用证书加密会话cookie
- 将所有
文件设置为在web.config
system.web
- 将
中的web.config
设置为使用预定义值而不是自动生成的值machinekey
machinekey
设置,请参见:
听起来像是一个加密的连接字符串,它解释了为什么将应用程序池用户切换回orig可以解决这个问题。尝试解密字符串,然后更改应用程序池用户。hmmm很有趣,但我的连接字符串在任何地方都没有加密。