Jef*_*f D 5 .net windows-services .net-4.0 .net-3.5 windows-server-2008
我已经尝试将服务EXE文件编译为AnyCPU,x86和x64.它适用于我的Windows 7 x64盒子.我正在使用installutil安装.NET 4版本.
当我启动服务时,我收到错误.它没有说什么,但它确实指出了哪些模块被加载.那些有潜在兴趣的人:
LoadedModule [0] = D:\ yellowbook\grapevine_service\grapevinesystemservice.exe LoadedModule 3 = C:\ Windows\system32\KERNEL32.dll LoadedModule 4 = C:\ Windows\system32\KERNELBASE.dll LoadedModule [9] = C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\mscoreei.dll LoadedModule [17] = C:\ Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll LoadedModule [18] = C:\ Windows\WinSxS\amd64_microsoft .vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4927_none_88dce9872fb18caf\MSVCR80.dll LoadedModule [22] = C:\ Windows\assembly\NativeImages_v2.0.50727_64\mscorlib\9a017aa8d51322f18a40f414fa35872d\mscorlib.ni.dll
我可以使用命令行开关将此服务作为控制台应用程序运行,从而产生以下结果:
未处理的异常:System.BadImageFormatException:无法加载文件或程序集"grapevinesystemservice.exe"或其依赖项之一.此程序集由比当前加载的运行时更新的运行时构建,无法加载.文件名称:'grapevinesystemservice.exe'
我试过注册表黑客强制使用最新的运行时.没有效果.我已经查看了已安装的EXE文件,以确保它没有被我的构建服务器获取,但它的目标是4.0.30319.我的本地,构建和测试服务器都有30319作为.NET 4版本.没有人有过beta/RC.
它们没有在加载模块中列出,但我也使用log4net(在.NET 4中从源代码重建),StructureMap,NoRM(MongoDB),AutoMapper,Newtonsoft.Json以及其他一些构建的DLL文件由我的团队.
小智 6
您是否尝试在grapevinesystemservice.exe的配置文件中设置requiredRuntime?像提到的0xA3一样,看起来它没有设置为使用4.0.
<startup>
<requiredRuntime version="v4.0.20506" safemode="true"/>
</startup>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7697 次 |
| 最近记录: |