Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 重新启动IIS/应用程序池回收时,为什么静态变量数据丢失而不是实例?_C#_Iis_Static - Fatal编程技术网

C# 重新启动IIS/应用程序池回收时,为什么静态变量数据丢失而不是实例?

C# 重新启动IIS/应用程序池回收时,为什么静态变量数据丢失而不是实例?,c#,iis,static,C#,Iis,Static,为什么如果重新启动IIS,静态变量的数据会丢失(例如,在Sharepoint中的Web部件属性中),但在实例变量中,情况并非如此 这是IIS7和Windows Server 2008 R2 x64 谢谢实例变量肯定会丢失-只是假设它们是通过请求数据重新填充的,就像IIS未重新启动时一样。实例变量肯定会丢失-只是假设它们是通过请求数据重新填充的,就像IIS未重新启动时一样。如果进程重新启动,所有变量都将丢失。 但是:重新设置池的样式时,IIS会自动将会话变量序列化到另一个进程内存中。当池重新启动时

为什么如果重新启动IIS,静态变量的数据会丢失(例如,在Sharepoint中的Web部件属性中),但在实例变量中,情况并非如此

这是IIS7和Windows Server 2008 R2 x64


谢谢

实例变量肯定会丢失-只是假设它们是通过请求数据重新填充的,就像IIS未重新启动时一样。

实例变量肯定会丢失-只是假设它们是通过请求数据重新填充的,就像IIS未重新启动时一样。

如果进程重新启动,所有变量都将丢失。 但是:重新设置池的样式时,IIS会自动将会话变量序列化到另一个进程内存中。当池重新启动时,会话变量将被反序列化,从而恢复。
这是通过.NET序列化功能完成的,这意味着所有会话变量都必须标记为[Serializable]属性,否则您将获得运行时替换。

如果进程重新启动,所有变量都将丢失。 但是:重新设置池的样式时,IIS会自动将会话变量序列化到另一个进程内存中。当池重新启动时,会话变量将被反序列化,从而恢复。
这是通过.NET序列化功能完成的,这意味着所有会话变量都必须标记为[Serializable]属性,否则您将获得运行时替换。

您是指在整个进程结束后(通常在循环/重新启动时发生)进程内的实例变量仍然有效?真正地真正地真正地如果是这样的话,请告诉我们如何重现您的意思是,在整个流程结束后,流程中的实例变量仍然有效(这通常发生在回收/重新启动时)?真正地真正地真正地如果是这样的话,请告诉我如何复制它。谢谢你的这篇文章,内容丰富。你是从哪里发现的?谢谢你的这篇文章,内容丰富。你在哪里发现的?