在使用Windows服务中托管的WCF服务时获取HTTP获取错误

时间:2016-05-10 10:23:06

标签: c# .net wcf

在尝试使用Windows服务中托管的WCF服务获取HTTP Get Error时,无法建立连接,因为目标计算机主动拒绝它。但是当我在控制台应用程序中托管Same应用程序时,它工作正常。当Windows服务中的应用程序托管时,问题就出现了。以下代码用于托管服务。

 protected override void OnStart(string[] args)
 {
        try
        {
            Uri baseAddress = new Uri("http://localhost:8080/AuditService/");


            host = new ServiceHost(typeof(AuditService), baseAddress);


            ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
            smb.HttpGetEnabled = true;
            smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
            host.Description.Behaviors.Add(smb);

            host.AddServiceEndpoint(typeof(IAuditService), new BasicHttpBinding(BasicHttpSecurityMode.None), baseAddress);

            host.Open();
        }
        catch (Exception)
        {
            host.Abort();

        }
}

2 个答案:

答案 0 :(得分:0)

您确定端口已打开吗?

您可以使用telnet客户端

进行检查
telnet machine 8080

如果未打开端口,则可以检查异常详细信息以查看错误。

如果您的基于HTTP的服务是在非管理员帐户下启动的,那么您很可能需要使用以下命令注册它

netsh http add urlacl url=http://+:8080/AuditService user=mylocaluser

您可以在WCF ServiceHost access rights

找到更多详细信息

答案 1 :(得分:0)

您可以使用管理员打开命令提示符并编写此文本:

netsh http add urlacl url=http://+:8080/AuditService user=Everyone