Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IIS服务器上https绑定的WCF应用程序_C#_Wcf_Ssl_Https - Fatal编程技术网

C# IIS服务器上https绑定的WCF应用程序

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服务

我正在处理WCF编程。一开始非常顺利。但是在我使用https url绑定之后,它遇到了很多困难。我从许多文章中了解了WSHttpBinding、SecurityMode和SetCertificate,但仍然没有获得成功的结果。我想我在几个方面遗漏了一些东西

我在Windows10电脑上开发,它通过IIS运行默认网站。我通过443端口添加了https绑定,并将IIS Express开发证书应用于SSL证书。每个设置都保持默认值

  • 是否可以在运行https网站的系统上运行带有https绑定的WCF服务应用程序
  • 要在下面的代码中将url更改为“/MyService”,我需要做什么
  • 服务器项目:

    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
    {
    [经营合同]
    无效发送消息(字符串消息);
    }
    }