如何使用在Windows服务上运行的WCF服务

时间:2013-07-23 07:10:58

标签: wcf c#-4.0 windows-services

我是WCF的新人。我创建了一个新的WCF服务,它有一个名为SendFax()的方法。它运行在Windows服务上。我希望其他用户使用这种方法,但如何?我用installutil.exe安装了windows服务,现在正在运行。我想我的WCF服务正在收听。我该如何获得这项服务?我的Windows服务代码在这里:

public partial class WCFWinService : ServiceBase
{
    ServiceHost serviceHost;

    public WCFWinService()
    {
        InitializeComponent();
        ServiceName = "Digiturk FaxPro WCF";
    }

    protected override void OnStart(string[] args)
    {
        if (serviceHost != null)
        {
            serviceHost.Close();
        }
        serviceHost = new ServiceHost(typeof(FaxPro.WCFWindowsService.WCFWinService));
        serviceHost.Open();                
    }

    protected override void OnStop()
    {
        if (serviceHost != null)
        {
            serviceHost.Close();
            serviceHost = null;
        }
    }
}

WCF接口代码:

[ServiceContract]
public interface IWCFService
{
    [OperationContract]
    void SendFax(....);
}

WCF服务代码:

public class WCFService : IWCFService
{             

    public void SendFax(...)
    { ... }

有什么建议吗?


App.Config就在这里

<?xml version="1.0"?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    </startup>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_IWCFService" />
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://localhost:8733/Design_Time_Addresses/Digiturk.FaxPro.WcfServiceLibrary/Service1/"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IWCFService"
                contract="localhost.IWCFService" name="BasicHttpBinding_IWCFService" />
        </client>
    </system.serviceModel>
</configuration>

1 个答案:

答案 0 :(得分:0)

您可以在定义的地址连接此服务:

 http://example.com:8733/Design_Time_Addresses/Digiturk.FaxPro.WcfServiceLibrary/‌Service1/ 

这是一个SOAP服务 - 所以你需要一个支持SOAP的测试工具,比如SoapUI或WCF测试客户端(只是一个浏览器不能工作)。您可以通过将?wsdl附加到URL来获取上述地址的服务的WSDL。