代码之家  ›  专栏  ›  技术社区  ›  Matthew Dalton

无法安装windows服务

  •  71
  • Matthew Dalton  · 技术社区  · 15 年前

    此服务没有从默认windows服务项目中添加的功能,只是添加了一个安装程序。

    如果我在我的dev box或域中的其他windows 2008 R2计算机上运行“installutil.exe appName.exe”,则windows服务安装时不会出现问题。

    当我尝试在我们的客户站点上执行相同的操作时,它无法安装,并出现以下错误。

    Microsoft (R) .NET Framework Installation utility Version 4.0.30319.1
    Copyright (c) Microsoft Corporation.  All rights reserved.
    
    Exception occurred while initializing the installation:
    System.IO.FileLoadException: Could not load file or assembly 'file:///C:\TestService\WindowsService1.exe' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515).
    

    此解决方案只有一个项目,没有添加依赖项。

    在我们的环境中,我在多台机器上试用过,在我们的客户中有两台。这些机器都是windows 2008 R2,都是新安装的。一台机器只有.net 2.0和.net 4.0。另一个是.net 2、3、3.5和4。

    我也试过64位的安装程序,但得到了以下错误,所以我认为32位的是一个使用。 System.BadImageFormatException

    任何指导都将不胜感激。谢谢。

    11 回复  |  直到 9 年前
        1
  •  -3
  •   Stefan P.    15 年前

    你可以试着做一个 Setup Project 并在该服务器上运行MSI文件。

        2
  •  275
  •   doublehelix    15 年前

    右键单击并选择文件的属性后,单击“取消阻止”可以取消阻止程序集。

        3
  •  14
  •   OzBob    10 年前

    需要解除阻止文件。 或者至少那是修复我的。

    get-childitem *.* | Unblock-File 
    

    或在DOS中:

    FOR %a in (*.*) do (echo.>%a:Zone.Identifier)
    
        4
  •  9
  •   Brandon Ward    14 年前

    我遇到这个问题是因为我试图从网络位置安装服务。通过在使用installutil之前将service.exe复制到本地计算机,它修复了我的问题并成功安装了服务。

        5
  •  7
  •   Sanjay Sharma    9 年前

    右键单击可执行文件 解除锁定 . 它将清除标志并安装服务可执行文件。

        6
  •  2
  •   user437631    15 年前

    别忘了投票。。。 按以下步骤尝试SC: 一。打开命令行 sc create ServiceName BinPath=“ExePath”。 报告结果。。。

        7
  •  1
  •   OnceBitten    14 年前

    我复制了旧版本,调整了utils,复制了新版本并重新安装。无论如何,这是我首先应该遵循的逻辑顺序。

        8
  •  1
  •   Saeed-rz    14 年前

    我有这个问题,它是针对.net版本的util和我的服务

        9
  •  1
  •   Oguzhan Kircali    10 年前

    您可以在开发人员命令提示符下使用此命令运行administrator

    installutil C:\...\MyService\bin\Debug\MyService.exe
    
        10
  •  0
  •   Redwood    12 年前

    在我的例子中,这个错误是由于意外地将包含服务的目录传递给InstallUtil而不是传递服务exe造成的。

    很明显是人为错误,但我发现错误信息很容易引起误解。

        11
  •  0
  •   doublehelix    11 年前