以编程方式创建安全的Web http休息服务

时间:2014-04-11 18:58:28

标签: c# wcf rest

我想以编程方式在自主机环境中创建一个安全的webhttp REST服务,即在控制台应用程序中,但我找不到任何允许我这样做的教程。

但是,我使用WCF服务库项目创建了安全的webhttp休息服务,没有任何C#代码。我使用netsh命令插入我所做的certficiate并适当更新我的配置。

有人可以提出建议吗?

1 个答案:

答案 0 :(得分:0)

只是一个快速的更新,我得到它的工作,但只有http方面。

这是我的服务端代码:

 WebServiceHost serviceHost = new WebServiceHost(typeof(ProductServiceTest), new  Uri("http://localhost:9000/"));

        WebHttpBinding webHttpBinding = new WebHttpBinding();
        webHttpBinding.MaxReceivedMessageSize = 65536 * 2;
        webHttpBinding.MaxBufferPoolSize=2147483647L; 
        webHttpBinding.MaxBufferSize=2147483647;
        webHttpBinding.MaxReceivedMessageSize = 2147483647L;

        serviceHost.AddServiceEndpoint(typeof(IProductServiceTest), webHttpBinding, "");



        // Check to see if the service host already has a ServiceMetadataBehavior
        ServiceMetadataBehavior smb = serviceHost.Description.Behaviors.Find<ServiceMetadataBehavior>();
        // If not, add one
        if (smb == null)
            smb = new ServiceMetadataBehavior();
        smb.HttpGetEnabled = true;
        serviceHost.Description.Behaviors.Add(smb);
        serviceHost.Open();
        Console.WriteLine("Press <ENTER> to terminate the service host");
        Console.ReadLine();
        serviceHost.Close();

我为客户端创建了一个控制台应用程序,并通过这样做让我的客户端工作:

ChannelFactory<IProductServiceTest> cf = new ChannelFactory<IProductServiceTest>(new WebHttpBinding(), "http://localhost:9000");
        cf.Endpoint.Behaviors.Add(new WebHttpBehavior());
        IProductServiceTest channel = cf.CreateChannel();
        var test = channel.GetProductData("8");
        Console.WriteLine(test.ProductDescription);
        Console.Read();