【问题标题】:Are there any trouble on putting a web service's static method?放置 Web 服务的静态方法有什么问题吗?
【发布时间】:2014-02-05 10:36:52
【问题描述】:

我希望一个方法在我的应用程序(Web 服务)外部和内部都可见。

所以,是这样的:

[WebMethod]
public static CoordinataTratta TrovaTrattaPiuVicinaByCoordinate(double myLat, double myLng)
{
    ...
    return coordinata;
}

// inside my application
var a = WebService.TrovaTrattaPiuVicinaByCoordinate(0, 0);

会造成一些问题吗?

【问题讨论】:

  • 你为什么要static?不,它可能行不通。

标签: c# .net web-services static


【解决方案1】:

请记住,对 Web 方法的每次调用都将在同一进程中的单独线程中进行处理。这意味着所有静态变量将在所有线程之间共享,因此所有对 Web 服务器的调用。这可能会导致难以重现和调试问题。

仅将方法设为静态可能不是什么大问题,但这很容易导致使用静态变量/属性等。这需要在 Web 服务器中避免。

【讨论】:

    【解决方案2】:

    它不是这样设计的。设计是创建web服务类的实例,然后调用实例方法。

    我只能猜测为什么微软会这样设计它......

    阅读更多... https://stackoverflow.com/a/1263387/3156647

    【讨论】:

      猜你喜欢
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      • 2013-02-13
      • 2010-11-18
      • 2012-11-18
      • 2011-01-27
      • 2013-11-06
      • 2011-10-30
      相关资源
      最近更新 更多