C# IIS服务器上https绑定的WCF应用程序
我正在处理WCF编程。一开始非常顺利。但是在我使用https url绑定之后,它遇到了很多困难。我从许多文章中了解了WSHttpBinding、SecurityMode和SetCertificate,但仍然没有获得成功的结果。我想我在几个方面遗漏了一些东西 我在Windows10电脑上开发,它通过IIS运行默认网站。我通过443端口添加了https绑定,并将IIS Express开发证书应用于SSL证书。每个设置都保持默认值C# IIS服务器上https绑定的WCF应用程序,c#,wcf,ssl,https,C#,Wcf,Ssl,Https,我正在处理WCF编程。一开始非常顺利。但是在我使用https url绑定之后,它遇到了很多困难。我从许多文章中了解了WSHttpBinding、SecurityMode和SetCertificate,但仍然没有获得成功的结果。我想我在几个方面遗漏了一些东西 我在Windows10电脑上开发,它通过IIS运行默认网站。我通过443端口添加了https绑定,并将IIS Express开发证书应用于SSL证书。每个设置都保持默认值 是否可以在运行https网站的系统上运行带有https绑定的WCF服务
using System;
using System.ServiceModel;
namespace studyWtfServer
{
class Program
{
static void Main(string[] args)
{
var url = @"http://localhost/MyService";
var host = new ServiceHost(typeof(MyService), new Uri(url));
var binding = new BasicHttpBinding();
host.AddServiceEndpoint(typeof(iMyService), binding, url);
host.Open();
Console.WriteLine("Service started: {0}\n(Press ESC to close)", url);
while (Console.ReadKey().Key != ConsoleKey.Escape) ;
}
}
class MyService : iMyService
{
public void SendMessage(string msg)
{ Console.WriteLine("Received from client: {0}", msg); }
}
[ServiceContract]
interface iMyService
{
[OperationContract]
void SendMessage(string msg);
}
}
客户项目:
using System;
using System.ServiceModel;
using System.ServiceModel.Description;
namespace studyWcfClient
{
class Program
{
static void Main(string[] args)
{
var url = @"http://localhost/MyService";
var binding = new BasicHttpBinding();
var ep = new ServiceEndpoint(ContractDescription.GetContract(typeof(iMyService)), binding, new EndpointAddress(url));
var factory = new ChannelFactory<iMyService>(ep);
Console.WriteLine("Input messages:(\"quit\" to close).");
do
{
var msg = Console.ReadLine();
if (msg.Equals("quit", StringComparison.CurrentCultureIgnoreCase)) break;
factory.CreateChannel().SendMessage(msg);
} while (true);
}
}
[ServiceContract]
interface iMyService
{
[OperationContract]
void SendMessage(string msg);
}
}
使用系统;
使用System.ServiceModel;
使用System.ServiceModel.Description;
命名空间研究客户端
{
班级计划
{
静态void Main(字符串[]参数)
{
var url=@”http://localhost/MyService";
var binding=新的BasicHttpBinding();
var ep=新的ServiceEndpoint(ContractDescription.GetContract(typeof(iMyService)),绑定,新的端点地址(url));
var工厂=新渠道工厂(ep);
WriteLine(“输入消息:(\'quit\'关闭)。”;
做
{
var msg=Console.ReadLine();
if(msg.Equals(“quit”,StringComparison.CurrentCultureInoRecase))中断;
factory.CreateChannel().SendMessage(msg);
}虽然(正确);
}
}
[服务合同]
接口iMyService
{
[经营合同]
无效发送消息(字符串消息);
}
}