我正在尝试,但到目前为止我发现的一切似乎都以 GUI 和表单应用程序为中心。那不是我正在使用的。
最终它将成为一项服务,但在完成之前我将它作为普通应用程序运行,问题是如果我不小心关闭它,它会使另一个服务挂起长达 30 分钟的错误数据. 我虽然添加一个监听器来捕捉应用程序被关闭会很容易。
但我就是想不通。
我找到了很多部分答案,但没有什么真的足够.
案例:应用程序是一个工作命令行应用程序,没有用户交互,除了能够在输入停止时接收按键,这已经以一种方式编写,即使不在运行时也禁用环境.UserInteractive ==真正.
我正在使用Visual Studio 2010.
问题是我需要将此应用程序转换为Windows服务.是"只是"将新的类文件作为服务,并让它在现有应用程序上调用我的启动和停止方法?
如何安装程序(VS'默认msi安装程序),现有安装程序项目是否可以"升级"以处理服务安装?
我之前搞砸了这个,最后得到了一个拒绝安装的安装程序,因为它一直在检测已安装的服务,停止安装过程然后立即回滚所有内容.它检测到的服务就是刚刚安装的服务.
我在存储过程的末尾有以下简单的三行:
UPDATE `imthreadmember`
SET `lastUpdate`=CURRENT_TIMESTAMP
WHERE `threadId` = threadId;
Run Code Online (Sandbox Code Playgroud)
但是,在过程中运行此命令会更新imthreadmember. 在控制台中运行相同的三行,仅更新带有该 的行threadId。在此语句之前插入 aselect threadId;会返回正确的 id。
我已经结束了,想知道如何解决这个问题。
中的行imthreadmember是在同一过程中较早创建的,但由于CURRENT_TIMESTAMP每个表只能用作默认值一次,因此我必须单独更新此列,因此默认值将转到该created列。