在尝试使用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();
}
}
答案 0 :(得分:0)
您确定端口已打开吗?
您可以使用telnet客户端
进行检查telnet machine 8080
如果未打开端口,则可以检查异常详细信息以查看错误。
如果您的基于HTTP的服务是在非管理员帐户下启动的,那么您很可能需要使用以下命令注册它
netsh http add urlacl url=http://+:8080/AuditService user=mylocaluser
找到更多详细信息
答案 1 :(得分:0)
您可以使用管理员打开命令提示符并编写此文本:
netsh http add urlacl url=http://+:8080/AuditService user=Everyone