c# - Windows 服务(托管 WCF 服务)在启动时立即停止

标签 c# wcf windows-services

我的问题:安装服务后我无法导航到基地址,因为服务不会继续运行(立即停止)。我需要在服务器或我的机器上做些什么才能使 baseAddress 有效吗?

背景:我正在尝试学习如何使用 Windows 服务中托管的 WCF 服务。我已经阅读了几个关于如何实现这一点的教程,它看起来非常简单。我看过这个MSDN article并逐步构建它。我可以在我的机器和服务器上安装该服务,但是当我启动该服务时,它会立即停止。然后我找到了this tutorial ,本质上是同一件事,但它包含一些使用 WCF 服务的客户端。我下载了源代码,编译,安装,但是当我启动服务时,它立即停止了。

搜索 SO,我找到了一个 possible solution据说在实例化 ServiceHost 时定义 baseAddress,但这也没有帮助。

我的 serviceHost 定义为:

serviceHost = new ServiceHost( typeof( CalculatorService ), 
                 new Uri( "http://localhost:8000/ServiceModelSamples/service" ) );

我的服务名称、基地址和端点:

<service name="Microsoft.ServiceModel.Samples.CalculatorService" behaviorConfiguration="CalculatorServiceBehavior">
        <host>
            <baseAddresses>
                <add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
            </baseAddresses>
        </host>
        <endpoint address="" binding="wsHttpBinding" contract="Microsoft.ServiceModel.Samples.ICalculator"/>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
    </service>

我已经验证命名空间是相同的。令人沮丧的是,教程似乎假设只要遵循所有规定的步骤,Windows 服务就会启动。我错过了一些东西,它可能就在我面前。请帮忙!

最佳答案

当您的 Windows 服务立即停止时,OnStart 方法中会引发异常。请 try catch 并记录该异常。

关于c# - Windows 服务(托管 WCF 服务)在启动时立即停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4564008/

相关文章:

c# - 错误的 ClientCredentials 的常见做法是什么?

c# - 如何获取当前端点合约的类型?

vb.net - 试图删除超过 x 天 vb.net 的文件

windows - 如何在 Windows 上创建每个用户的服务?

c# - LINQ - 在 IEnumerable 中选择第二个项目

c# - 在 C# 中从自定义 GUI 运行外部命令

c# - .NET SerialPort Write() 添加字符和移动字节

c# - 发送大量消息时出现 SocketException(代码 10048)

.net - .Net Windows 服务的相对路径问题..?

c# - Waitforexit 统一中断我正在运行的应用程序