放置Web服务的静态方法有什么问题吗?

时间:2014-02-05 10:36:53

标签: c# .net web-services static

我希望在我的应用程序(Web服务)之外及其内部可以看到一个方法。

所以,有些事情是这样的:

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

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

会产生一些问题吗?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

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

了解更多...... https://stackoverflow.com/a/1263387/3156647