10

我编写了许多版本的 Windows 服务并将它们安装在运行 Server 2008 R2 Enterprise 的 32 GB 的 64 位系统上。

我使用以下配方创建服务:http:
//msdn.microsoft.com/en-us/zt39148a.aspx
“演练:在组件设计器中创建 Windows 服务应用程序”

我在我的 Win 7 笔记本电脑(c#、vs2010 SP1、.NET 4)上创建了.msi和相应的setup.exe 。

正常行为

在我的笔记本电脑上测试 Windows 服务后,我将 .msi 和 setup.exe 复制到 win2008 R2 Enterprise 服务器上的文件夹(通过远程桌面使用复制和粘贴);我使用服务器的控制面板进行卸载,右键单击 .msi 并选择安装,然后浏览安装向导。没问题。大部分时间都在工作。

异常行为

安装可能运行 15 分钟或更长时间;它永远不会结束;最终一个对话框指出
“(?)安装程序不再响应。”
带有 [重试] 或 [取消] 选项。

此时,进度条可能很短,并且在最左侧,“请稍候...”的“P”下方。

单击重试没有帮助。自从我单击重试以来已经超过 30 分钟并且还在计数,并且进度条甚至没有前进一个像素。

更多信息

(a) 服务安装在另一台服务器上没有任何问题,Win 2008 R2 网络版。
(b) 如上所述,Windows 服务在我的 Win 7 开发和测试环境中安装并正常运行。

历史/推测

几周前,我无法从 win 2008 R2 Enterprise 服务器安装服务。我无法在控制面板/卸载中找到它,即使 .msi 声称它已安装并且该服务也继续出现在 services.msc 控制台中。即使禁用该服务也无济于事。出于这个原因,我克隆了代码,稍微更改了服务名称,并成功安装了该服务,该服务已经运行了一段时间而没有出现问题。

今天,发生了类似的事件,唯一的区别是我可以在控制面板卸载中看到该服务。因为它不会卸载,所以我尝试了相同的克隆技巧,但这次失败了。

下一步:使用上面的演练,我创建了一个什么都不做的 Windows 服务,并通过将我的客户端类从原始 c# 项目文件中导入它来使其变得有用。

从头开始重新构建的Windows服务在我的笔记本电脑上按设计工作,但拒绝安装在 R2 Enterprise 服务器上。

有任何想法吗?

谢谢,麻烦您了。

PS:我在so上发布了这个,因为恕我直言,开发人员在将她/他的代码交给系统管理员之前可能会遇到一些事情。

顺便说一句,我找不到任何相关的东西;同上通过谷歌。

4

2 回答 2

3

在这种特殊情况下,这是一些非常奇怪的服务器权限条件

更多信息

虽然我的服务器帐户不是管理员,但我是这个 2008 R2 机器的本地和域管理员 的成员。

我尝试了很多想法,包括在演练中创建示例并进行尝试。没运气。

boxe 的管理员能够使用 installutil.exe 安装我的服务,因此我尝试了 installutil.exe,但它仅适用于使用管理员凭据的我。

出于这个原因,我怀疑这可能是一个权利问题,所以我尝试使用我的凭据在 H:\ 驱动器上安装演练示例。成功。接下来,我尝试在 C: 的不同位置安装麻烦的 Windows 服务。再次,成功。

这个问题最奇怪的是,很多时候我都没有问题,然后突然出现一个问题,阻碍了我的开发工作。

安装 Windows 服务的标志是在开始安装后几乎立即出现询问是否允许继续的对话框。另一个可能成功的线索是能够通过控制面板成功卸载任何以前的版本。

我感谢每个人为帮助我所做的努力。谢谢你。

于 2011-03-24T11:05:53.733 回答
2

我对自己的 MSI(不仅仅是服务)以及 Win2k3 和 Win2k8 上的第三方 MSI 也有类似的经历。如果没有“全新”重新安装操作系统,我从来没有(曾经)深入了解它。

就像你一样,我也推测操作系统内部(注册表、文件系统、系统还原)的(组合或全部)丢失了一些东西。

我知道这不是您想听到的,但(如果可能的话)全新安装操作系统可能会为您解决问题。

于 2011-03-21T23:34:08.217 回答