我有一个使用 net.tcp 与胖 winforms 客户端通信的 WCF 服务。使用如下所示的 install.bat 安装 Windows 服务:
@ECHO OFF
REM The following directory is for .NET 4.0
set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework\v4.0.30319
set PATH=%PATH%;%DOTNETFX2%
echo Installing IEPPAMS Win Service...
echo ---------------------------------------------------
C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil "%~dp0MyApp.WindowsService.exe"
echo ---------------------------------------------------
pause
echo Done.
在某些计算机上,我需要将此 bat 保存为 ASKI 并获得对 .NET Framework 4.0 文件夹的完全权限,但除此之外,该服务通常已安装并启动而没有问题。
但是在某些计算机上,尝试启动服务时会收到以下消息:
MyComputer 上的 MyApp 服务启动然后停止。如果某些服务没有被其他服务或程序使用,它们会自动停止。
Windows 事件日志指出此异常:
无法启动服务。System.ServiceModel.FaultException`1[MyApp.DataContracts.FaultContracts.Generellt.GeneralFault]:(故障详细信息等于 MyApp.DataContracts.FaultContracts.Generellt.GeneralFault)。
启动服务时,将启动 3 个 WCF 服务,并且它们都有自己的基本地址和端口号。
我怀疑这与额外的安全环境有关?但我不知道如何解决它。
这已经在 Windows 2003 和 2008 R2 上测试过了