【发布时间】:2014-05-26 01:56:26
【问题描述】:
我想以编程方式在自托管环境(即控制台应用程序)中创建安全的 webhttp REST 服务,但我找不到任何允许我这样做的教程。
但是,我使用 WCF 服务库项目创建了安全的 webhttp 休息服务,而没有任何 C# 代码。我使用 netsh 命令插入我制作的证书并适当地更新了我的配置。
谁能给点建议?
【问题讨论】:
我想以编程方式在自托管环境(即控制台应用程序)中创建安全的 webhttp REST 服务,但我找不到任何允许我这样做的教程。
但是,我使用 WCF 服务库项目创建了安全的 webhttp 休息服务,而没有任何 C# 代码。我使用 netsh 命令插入我制作的证书并适当地更新了我的配置。
谁能给点建议?
【问题讨论】:
只是一个快速更新,我得到了它的工作,但目前还只有 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();
【讨论】: