我有一个WCF服务,使用net.tcp通信到胖winforms客户端。使用如下所示的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服务将启动,并且所有服务都有自己的baseadress和端口号。
我怀疑这与额外的安全环境有关?但我不知道如何解决它。
这已经在Windows 2003和2008 R2上进行了测试
答案 0 :(得分:0)
在您呼叫服务时抛出FaultException
。如果您发布完整的例外情况,我相信我们会看到。
当WCF从服务收到SOAP Fault消息时,会引发此类异常。该服务似乎正在抛出FaultException<MyApp.DataContracts.FaultContracts.Generellt.GeneralFault>
。
你应该问服务为什么这样做。 : - )
答案 1 :(得分:0)
这里的问题是数据库中的数据存在错误,并且异常处理在启动时无效。
答案 2 :(得分:-1)
可能是权利问题,这可以解释可变性。在端口上设置监听器需要&#34; admin&#34;对主机服务器的权限。您可以运行以下命令(来自CMD提示)以确保Web服务在启动时没有任何权限问题:
netsh http add urlacl url=http://+:8000/MyUri user=\everyone listen=yes
显然,这仅适用于开发和测试,而不适用于生产。
这里有一个解释:http://msdn.microsoft.com/en-us/library/windows/desktop/cc307223(v=vs.85).aspx