如何将C#对象持久化到Web服务?
我用C#编写了这个Web服务: 这是一个Web服务,每次我调用我的Web服务时,它都会重新创建所有东西。因此,我的计数器从不增加,每次调用如何将C#对象持久化到Web服务?,c#,web-services,C#,Web Services,我用C#编写了这个Web服务: 这是一个Web服务,每次我调用我的Web服务时,它都会重新创建所有东西。因此,我的计数器从不增加,每次调用GetData()WebService时都返回“1” 在每个WebService调用之间持久化数据的解决方案是什么 数据库,我想避免这种解决方案 客户机上的状态如何 会话,有没有简单的方法来使用这个 持久服务。这样行吗 除了解释如何使用WebService持久化数据之外,您还了解其他文章吗 谢谢,它被称为有状态web服务,例如使用会话。看 然而,在大多数情况下
GetData()
WebService时都返回“1”
在每个WebService调用之间持久化数据的解决方案是什么
谢谢,它被称为有状态web服务,例如使用
会话。看
然而,在大多数情况下,由于可伸缩性的原因,有些东西是不可靠的。您的服务调用应始终相互独立。您可以在HttpContext中跟踪计数器。缓存并增加其中的值:
int counter = (int) HttpContext.Current.Cache["ServiceCallCounter"];
counter ++;
HttpContext.Current.Cache["ServiceCallCounter"] = counter;
请注意,您必须首先激活它,并注意此缓存不会持久化应用程序池回收:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
如果您的Web服务仅在一台服务器上运行,则可以使用会话状态或缓存。如果您的web服务在多台服务器上运行,则必须使用数据库来存储该值。您希望保留的数据的预期寿命是多久?感谢此有趣的链接。我和芝加哥商人有同样的问题:如果你需要州政府,你应该用什么。1) 数据库,2)客户端状态,3)会话,4)持久服务。有没有一个简单的方法来使用3?4号行吗?在我的例子中,出于性能原因,我希望避免使用数据库。您的用例是什么?
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>