C# WCF在使用静态文件时丢失值

C# WCF在使用静态文件时丢失值,c#,.net,wcf,C#,.net,Wcf,我有一个WCF,它有一个静态类。我用它来存储登录信息。令我大吃一惊的是,我发现在不同的时间wcf静态正在丢失值。这是什么原因造成的?在WCF服务中保存信息的最佳方式是什么?内存中最好,因为它更快…如果重新启动宿主应用程序域,内存中存储的所有静态值都将丢失。例如,在IIS中,web服务器可以卸载应用程序 唯一的解决方案是将值保存到永久性存储中,而不是使用静态字段。如果重新启动宿主应用程序域,则存储在内存中的所有静态值都将丢失。例如,在IIS中,web服务器可以卸载应用程序 唯一的解决方案是将值保存

我有一个WCF,它有一个静态类。我用它来存储登录信息。令我大吃一惊的是,我发现在不同的时间wcf静态正在丢失值。这是什么原因造成的?在WCF服务中保存信息的最佳方式是什么?内存中最好,因为它更快…

如果重新启动宿主应用程序域,内存中存储的所有静态值都将丢失。例如,在IIS中,web服务器可以卸载应用程序


唯一的解决方案是将值保存到永久性存储中,而不是使用静态字段。

如果重新启动宿主应用程序域,则存储在内存中的所有静态值都将丢失。例如,在IIS中,web服务器可以卸载应用程序


唯一的解决方案是将值保存到永久性存储器中,而不是使用静态字段。

有几种可能性:

  • 代码中的某些内容正在删除这些值
  • 应用程序池正在重新设置样式,然后您将丢失内存中的所有内容
您可以将应用程序池的选项设置为仅在特定时间循环使用


如果需要保留登录信息,则应将其存储到磁盘上的文件中,或者最好存储到数据库中。

有几种可能性:

  • 代码中的某些内容正在删除这些值
  • 应用程序池正在重新设置样式,然后您将丢失内存中的所有内容
您可以将应用程序池的选项设置为仅在特定时间循环使用


如果需要保留登录信息,则应将其存储到磁盘上的文件中,或者最好存储到数据库中。

作为补充说明,将登录信息存储在内存中是危险的。如果进程崩溃并且内存被转储,您最终会将登录信息以纯文本形式存储在服务器上的某个位置。如果进程崩溃并转储了内存,那么最终将以明文形式将登录信息存储在服务器上的某个位置。