我必须编写一个自动更新服务来更新我们公司在客户端PC上的应用程序。要更新的应用程序之一是更新程序本身。我使用使用WIX创建的MSI包部署所有应用程序。然后该服务使用“msiexec.exe/q/i”生成一个进程以开始静默安装。这适用于其他产品,但当我想更新正在运行的服务时,该服务是启动调用安装程序的进程的服务。因此,我正在尝试更新正在运行的进程。我该怎么做?“fork”安装程序进程并退出服务?使用一些聪明的Windows内置方法? 最佳答案 感谢您的意见,这是我想出的:我正在使用具有MajorUpgrade支持和ServiceIns
我有两个进程都是用C#开发的。其中一个是Windows服务,另一个是普通的基于Windows的应用程序。我打算做的是从服务中退出应用程序,我不打算强行杀死它,但我可以这样做。我想优雅地退出它。我可以通过该服务调用应用程序中定义的application_close函数吗? 最佳答案 Process.CloseMainWindow()就是您要找的,我相信。http://msdn.microsoft.com/en-us/library/system.diagnostics.process.closemainwindow.aspx编辑:如果
WindowsMMC证书管理单元允许管理员使用“服务帐户”,但服务如何访问这些证书?如果我使用“服务帐户”以管理员身份导入到个人,并且以标准用户身份运行的服务使用System.Security.Cryptography.X509Certificates.X509Store在StoreLocation.CurrentUser(或StoreLocation.LocalMachine)中查找,它不会找到证书。如果我改为以服务帐户登录并从该标准用户帐户将证书导入个人,则服务会找到该证书。管理单元将“服务帐户”的证书放在哪里,服务如何使用.NET类找到它? 最佳答案
我想通过C#自动化一个名为Spotify的程序,(我认为)最好的方法是触发假按键。我想编程暂停播放,但我对这些东西的了解还不够多,无法找到按键以外的其他方法。所以我使用VisualStudio的Spy++查看按下键盘上的播放按钮时Spotify收到什么消息,我将该消息中的数据复制到我的控制台应用程序并运行它,当我运行时我可以在Spy++的消息记录中看到PostMessage,所以这是有效的,但它不会暂停/播放我的音乐。我想这是因为我还必须发送另一个带有另一个目的地的PostMessage,但我怎么知道还要发送什么?发布消息调用:MessageHelper.PostMessage((in
Windows服务在HKEY_CURRENT_USER注册表项下为每个登录用户创建一个注册表值(用于Excel加载项)(通过调用ImpersonateLoggedOnUser()和RegSetValueEx())。我需要在用户注销时删除此注册表值,包括系统关闭。如果它在注销时未被删除,并且软件被一个用户卸载,则注册表中的条目将保留在服务生命周期内登录的任何其他用户,这会导致每次Excel启动时显示消息框错误因为它正在尝试加载不再存在的加载项。考虑但拒绝了以下内容:SetConsoleCtrlHandler()因为没有迹象表明用户正在注销。REG_OPTION_VOLATILE因为它只在
我有一个在Windows10(1607)上运行的Jenkins从站。如果我以JNLP的形式直接运行从站,这个从站可以从git存储库克隆(使用用户名和密码进行身份验证)。如果我启动同一个从服务器作为服务,gitclone会失败并显示Authenticationfailedfor...。该服务是通过从站的"file"菜单创建的,并作为“本地系统帐户”运行。出了什么问题?这是Jenins的输出:00:00:00.003Startedbyuser00:00:00.005ln-sbuilds/lastSuccessfulBuild/var/jenkins_home/jobs/Xamarin/jo
我有一个应用程序崩溃,结果它在Windows平台上生成故障转储。我将exe和dll文件发送给客户。客户发来了user.dmp和drwtsn32.log文件给我。但是,客户没有对应的pdb文件。客户只有dll和exe文件。因此,当我将此user.dmp文件附加到Windbg时,我没有得到符号。那么,我需要做什么才能获得符号。我需要将pdb文件发送给客户吗?如果是,当发生崩溃时他需要如何处理这些pdb文件?我使用三台不同的机器:a)构建机器,c)客户的测试机器和c)我自己的调试机器(与构建机器不同)。windbg安装在调试机器上。我可以将所有pdb文件从构建机器复制到我的调试机器中。请告诉
我正在使用AzureAD为ASP.NETWebAPI2RESTAPI设置身份验证。我希望所有客户端都能够使用用户名和密码通过RESTAPI进行身份验证。我已经设置了AzureAD(下面是完整的步骤,但本质上是-创建目录、添加用户、添加应用程序、在list中向应用程序添加角色、将用户分配给应用程序)。但是,当我尝试通过控制台应用程序(底部的完整代码)进行测试时,出现异常:类型为“Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException”的未处理异常发生在Microsoft.IdentityModel.Clie
只是想知道是否有人在ServiceFabric中遇到过未处理的异常,以及围绕它们的最佳实践是什么。主要是对服务的故障状态感到好奇。如果服务处于故障状态,它们是否会被回收?或者是否应该对未处理的异常进行全局异常处理,如果该概念甚至存在于SF中。我在搜索时没有找到太多关于这个主题的信息。 最佳答案 在我的公司,我们已经按照guidelinesforusingITransaction构建了一些可重复使用的代码,这允许我们运行任意代码,并使用适当的异常处理和重试策略对其进行包装。在该文档中,有关于各种类型的异常应如何影响RunAsync方法
我正在尝试创建一个本地SQLServerReportingServices报告(.rdlc文件)并将此报告连接到我在代码中生成的一些数据集(没有直接的SQLServer连接)。我创建了一个ReportDataProvider带有一些返回IList的实例方法的类对于各种标准集-但我似乎无法找到一种方法来使这些数据提供方法显示在VisualStudio2013内的ReportingServices设计器中。当我查看单击AddDataSet后出现的对话框时在Datasets上ReportData中的节点资源管理器窗口,我看到那里列出了大量我的类-但没有我的数据提供者类。有什么我需要注意的特别