首页编程machinekey,machineKey元素,在machine.config文件里吗

machinekey,machineKey元素,在machine.config文件里吗

编程之家2023-11-06239次浏览

各位老铁们好,相信很多人对machinekey都不是特别的了解,因此呢,今天就来为大家分享下关于machinekey以及machineKey元素,在machine.config文件里吗的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

machinekey,machineKey元素,在machine.config文件里吗

asp.net session老是丢失

win2003 server下的IIS6默认设置下对每个运行在默认应用池中的工作者进程都会经过20多个小时后自动回收该进程,造成保存在该进程中的session丢失。

因为Session,Application等数据默认保存在运行该Web应用程序的工作者进程中,如果回收工作者进程,则会造成丢失。

解决办法:

修改配置,设置为不定时自动回收该工作者进程,比如设置为当超出占用现有物理内存60%后自动回收

该进程。通过使用默认应用程序池,可以确保多个应用程序间互相隔离,保证由于一个应用程序的崩溃不会影响另外的Web应用程序。还可以使一个独立的应用程序运行在一个指定的用户帐号特权之下。

如果使用StateServer方式或者Sql Server数据库方式来保存Session,则不受该设置的影响。

machinekey,machineKey元素,在machine.config文件里吗

可能的原因2:

系统要运行在负载平衡的 Web场环境中,而系统配置文件web.config中的Session状态却设置为InProc(即在本地存储会话状态),导至在用户访问量大时,Session常经超时的情况。引起这个现象的原因主要是因为用户通过负载平衡IP来访问WEB应用系统,某段时候在某台服务器保存了Session的会话状态,但在其它的WEB前端服务器中却没有保存Session的会话状态,而随着并发量的增大,负载平衡会当作路由随时访问空闲的服务器,结果空闲的服务器并没有之前保存的Session会话状态。

解决办法:

1.当您在负载平衡的 Web场环境中运行 ASP.NET Web应用程序时,一定要使用 SqlServer或 StateServer会话状态模式,在项目中我们基于性能考虑并没有选择SqlServer模式来存储Session状态,而是选择一台SessionStateServer服务器来用户的Session会话状态。我们要在系统配置文件web.config中设置如下:

<sessionState mode="StateServer" cookieless="false" timeout="240" stateConnectionString="tcpip=192.168.0.1:42424" stateNetworkTimeout="14400"/>

还要添加一项

machinekey,machineKey元素,在machine.config文件里吗

<machineKey validationKey="78AE3850338BFADCE59D8DDF58C9E4518E7510149C46142D7AAD7F1AD49D95D4" decryptionKey="5FC88DFC24EA123C" validation="SHA1"/>

2.我们同时还要在SessionStateServer服务器中启动ASP.NET State Service服务,具体设置:控制面板>>管理工具>>服务>>ASP.NET State Service,把它设为自动启动即可。

3.每台前端WEB服务的Microsoft“Internet信息服务”(IIS)设置

要在 Web场中的不同 Web服务器间维护会话状态,Microsoft“Internet信息服务”(IIS)配置数据库中 Web站点的应用程序路径(例如,\LM\W3SVC\2)与 Web场中所有 Web服务器必须相同。大小写也必须相同,因为应用程序路径是区分大小写的。在一台 Web服务器上,承载 ASP.NET应用程序的 Web站点的实例 ID可能是 2(其中应用程序路径是\LM\W3SVC\2)。在另一台 Web服务器上,Web站点的实例 ID可能是 3(其中应用程序路径是\LM\W3SVC\3)。因此,Web场中的 Web服务器之间的应用程序路径是不同的。我们必须使Web场Web站点的实例 ID相同即可。你可以在IIS中把某一个WEB配置信息保存为一个文件,其他Web服务器的IIS配置可以来自这一个文件。您如果想知道具体的设置请访问Microsoft Support网站。

machineKey元素,在machine.config文件里吗

放在web.config中的<system.web>节下面,

格式:

<machineKey

validationKey="AutoGenerate|value[,IsolateApps]"

decryptionKey="AutoGenerate|value[,IsolateApps]"

validation="[SHA1|MD5|3DES]"

decryption="[Auto|]"

/>

用法:

decryption

可选的 String属性。

指定用于对数据进行解密的哈希算法的类型。

此属性可以为下列可能值之一。

值说明

Auto

指定 ASP.NET基于配置的默认设置来确定使用哪个解密算法。这是默认值。

AES

指定 ASP.NET使用 AES(Rijndael)算法来对数据进行解密。AES是用于对数据进行解密的默认算法。

3DES

指定 ASP.NET使用 TripleDES算法来对数据进行解密。TripleDES(3DES)算法使用 DES算法的三次连续迭代。

此属性是.NET Framework 2.0版中的新属性。

默认值为"Auto"。

decryptionKey

必选的 String属性。

指定用于对数据进行加密和解密的密钥或者生成该密钥的进程。当 validation设置为 TripleDES字段时,该属性用于 Forms身份验证加密和解密以及视图状态加密。

如果向此属性添加 IsolateApps修饰符,ASP.NET将使用每个应用程序的应用程序 ID为每个应用程序生成一个唯一的加密密钥。IsolateApps也是默认值的一部分。

如果您需要在 Web服务器网络(网络场)中支持配置,请手动设置此属性以确保配置保持一致。

此属性可以为下列可能值之一。

值说明

AutoGenerate

指定 ASP.NET生成随机密钥并将其存储在 LSA中。该值是默认值。如果向 decryptionKey值添加 IsolateApps修饰符,ASP.NET将使用每个应用程序的应用程序 ID为每个应用程序生成一个唯一的加密密钥。

value

指定一个手动分配的密钥。该值必须手动设置为十六进制字符串,以确保配置在整个网络场中保持一致。使用 DES加密时,密钥长度应该为 16个字符;而使用三重 DES(3 DES)加密时,密钥长度应该为 48个字符。如果要使用长度小于最大长度的密钥,则应通过真正的随机方式(例如,通过使用 RNGCryptoServiceProvider类)来创建这些密钥。只有在计算机使用 128位加密的情况下,ASP.NET才能使用三重 DES。如果向 decryptionKey值添加 IsolateApps修饰符,ASP.NET将使用每个应用程序的应用程序 ID为每个应用程序生成一个唯一的加密密钥。

默认值为"AutoGenerate,IsolateApps"。

validation

必选的 MachineKeyValidation属性。

指定用来验证数据的加密类型。

此属性可以为下列可能值之一。

值说明

AES

指定 ASP.NET使用 AES(Rijndael)算法来对数据进行解密。AES是用于对数据进行解密的默认算法。

MD5

指定 ASP.NET使用 Message Digest 5(MD5)哈希算法。此算法的性能比 SHA1好。

SHA1

指定 ASP.NET使用 SHA1哈希算法。使用此算法可增强安全性。

该值是默认值。

TripleDES

指定 ASP.NET使用 TripleDES算法来对数据进行解密。TripleDES算法使用 DES算法的三次连续迭代。

在.NET Framework 1.0和 1.1版中,该值为"3DES"。

默认值为"SHA1"。

validationKey

必选的 String属性。

指定用于验证加密数据的密钥。当 enableViewStateMAC为 true时,validationKey用于创建消息身份验证代码(MAC),以确保视图状态未被篡改。validationKey还可用于生成进程外、应用程序特定的会话 ID,以确保每个会话具有独立的会话状态变量。

如果向 ValidationKey值添加 IsolateApps修饰符,ASP.NET将使用每个应用程序的应用程序 ID为每个应用程序生成一个唯一的加密密钥。IsolateApps也是默认值的一部分。

如果您需要在 Web服务器网络(网络场)中支持配置,请手动设置 ValidationKey属性以确保配置保持一致。

validationKey属性可以为下列可能值之一。

值说明

AutoGenerate

指定 ASP.NET生成随机密钥并将其存储在 LSA中。此选项是默认值。如果向 validationKey值添加 IsolateApps修饰符,ASP.NET将使用每个应用程序的应用程序 ID为每个应用程序生成一个唯一的加密密钥。

value

指定一个手动分配的密钥。该值必须手动设置为十六进制字符串,以确保配置在整个网络场中保持一致。使用 DES加密时,密钥长度应该为 16个字符;而使用三重 DES加密时,密钥长度应该为 48个字符。如果要使用长度小于最大长度的密钥,则应通过真正的随机方式(例如,通过使用 CryptographyRNGCryptoServiceProvider类)来创建这些密钥。只有在计算机使用 128位加密的情况下,ASP.NET才能使用三重 DES。如果向 validationKey值添加 IsolateApps修饰符,ASP.NET将使用每个应用程序的应用程序 ID为每个应用程序生成一个唯一的加密密钥。

默认值为"AutoGenerate,IsolateApps"。

感谢您的阅读!希望本文对解决您关于machinekey和machineKey元素,在machine.config文件里吗的问题有所帮助。如果您还有其他疑问,欢迎随时向我们提问。

河南备案?河南异地就医备案网上办理流程邮件签名格式?邮箱签名怎么写