代码之家  ›  专栏  ›  技术社区  ›  Lanceomagnifico

Microsoft Navision如何跟踪用户/如何在自己登录时进行检查

  •  1
  • Lanceomagnifico  · 技术社区  · 16 年前

    我们有一个具有3个许可证的Navision服务器。电子商务网站应始终分配一个许可证。另外两个供管理员使用。

    不幸的是,我们经常在网站上看到这个可怕的错误:

    System.Web.httpUnhandledException:引发了“System.Web.httpUnhandledException”类型的异常。--->system.web.services.protocols.soapexception:您的程序许可证不允许更多用户同时工作。等待其他用户停止使用该程序。如果要允许系统上的更多同时用户,请与系统管理员联系。

    当有太多的用户试图使用navision客户端时,通常会发生这种情况…在我们进入之前,这会扼杀网站上的特定功能,让谁来查看谁在占用会话,并要求他们注销或直接杀死会话。

    我们已经编写了钩住navision登录的代码来检查SQL Server sp_,以确保没有太多用户登录并使用navision数据库,但这似乎不起作用。

    我认为navision将当前登录状态存储在其他地方,这是我们应该查找的地方,而不是在SQL Server系统表中。

    有什么想法吗? 干杯, 兰斯

    1 回复  |  直到 16 年前
        1
  •  2
  •   Alex Peck    16 年前

    如果您使用的是Web服务,那么您可以使用NAV2009或2009 SP1。Web服务不使用许可会话(您可以连接无限的Web服务会话)。但是,如果您有三个许可证并连接三个或更多客户端(RTC和C/Side的任意混合),Web服务连接将失败,并出现您描述的错误。

    会话计数应该反映在master.dbo.sysprocesses中可以看到的内容(您需要进行一些连接,以查看谁连接到了哪个数据库)。系统进程可能也是调用sp_who的基础。您可以自己通过打开C/Side来验证这一点,然后选择文件->数据库->信息,然后选择会话。将其与sp_who或sysprocesses进行比较。

    推荐文章