Windows服务(WCF)在某些计算机上启动时出现异常?

时间:2013-03-07 11:23:42

标签: .net windows wcf security windows-services

我有一个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上进行了测试

3 个答案:

答案 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