0

我有一个使用 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 上测试过了

4

3 回答 3

0

FaultException调用服务时抛出A。如果您发布完整的例外情况,我相信我们会看到的。

当 WCF 从服务接收到 SOAP 错误消息时,会引发此类异常。该服务似乎正在抛出一个FaultException<MyApp.DataContracts.FaultContracts.Generellt.GeneralFault>.

您应该询问服务为什么这样做。:-)

于 2013-03-15T01:34:46.227 回答
0

这里的问题是数据库中的数据存在错误,并且异常处理在启动时不起作用。

于 2013-03-25T08:35:27.980 回答
-1

可能是供股问题,这将解释可变性。在端口上设置侦听器需要对主机服务器具有“管理员”权限。您可以运行以下命令(在 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

于 2013-03-08T13:44:36.107 回答