Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.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#对象持久化到Web服务?_C#_Web Services - Fatal编程技术网

如何将C#对象持久化到Web服务?

如何将C#对象持久化到Web服务?,c#,web-services,C#,Web Services,我用C#编写了这个Web服务: 这是一个Web服务,每次我调用我的Web服务时,它都会重新创建所有东西。因此,我的计数器从不增加,每次调用GetData()WebService时都返回“1” 在每个WebService调用之间持久化数据的解决方案是什么 数据库,我想避免这种解决方案 客户机上的状态如何 会话,有没有简单的方法来使用这个 持久服务。这样行吗 除了解释如何使用WebService持久化数据之外,您还了解其他文章吗 谢谢,它被称为有状态web服务,例如使用会话。看 然而,在大多数情况下

我用C#编写了这个Web服务:

这是一个Web服务,每次我调用我的Web服务时,它都会重新创建所有东西。因此,我的计数器从不增加,每次调用
GetData()
WebService时都返回“1”

在每个WebService调用之间持久化数据的解决方案是什么

  • 数据库,我想避免这种解决方案
  • 客户机上的状态如何
  • 会话,有没有简单的方法来使用这个
  • 持久服务。这样行吗
  • 除了解释如何使用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>