1

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

不幸的是,我们不时在网站上收到这个可怕的错误:

System.Web.HttpUnhandledException:引发了“System.Web.HttpUnhandledException”类型的异常。---> System.Web.Services.Protocols.SoapException:您的程序许可证不允许更多用户同时工作。等到另一个用户停止使用该程序。如果您想在您的系统上允许更多用户同时使用,请联系您的系统管理员。

这通常发生在有太多用户尝试使用 Navision 客户端时......这会杀死网站的某些功能,直到我们可以进入,sp_who 查看谁在占用会话并要求他们注销或彻底终止会话.

我们编写了代码来挂钩 Navision 登录以检查 SQL 服务器 sp_who 以确保没有太多用户登录并使用 Navision 数据库,但这似乎不起作用。

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

有任何想法吗?干杯,兰斯

4

1 回答 1

2

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

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

于 2009-12-09T18:46:20.383 回答