Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.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# 如何在本地主机上通过我的域向外部提供控制台托管的WCF服务?_C#_Wcf_Localhost - Fatal编程技术网

C# 如何在本地主机上通过我的域向外部提供控制台托管的WCF服务?

C# 如何在本地主机上通过我的域向外部提供控制台托管的WCF服务?,c#,wcf,localhost,C#,Wcf,Localhost,我有以下问题: 我在localhost:72/Service的服务器上的控制台应用程序中托管WCF服务 可通过mydomain.org:62345/service从外部访问此端口 如果我现在尝试从(外部)桌面应用程序检索并添加此服务的服务引用,我会收到一个400:bad请求,因为该应用程序尝试从localhost:72/service?wsdl而不是mydomain.org:62345/service?wsdl检索wsdl 如何更改控制台应用程序以使其正常工作 提前谢谢你,马丁 static

我有以下问题:

我在localhost:72/Service的服务器上的控制台应用程序中托管WCF服务

可通过mydomain.org:62345/service从外部访问此端口

如果我现在尝试从(外部)桌面应用程序检索并添加此服务的服务引用,我会收到一个400:bad请求,因为该应用程序尝试从localhost:72/service?wsdl而不是mydomain.org:62345/service?wsdl检索wsdl

如何更改控制台应用程序以使其正常工作

提前谢谢你,马丁

 static void Main(string[] args)
    {

        using (ServiceHost sh = new ServiceHost(typeof(MSSQL_MasterToDesktop_Service.Service1), new Uri("http://localhost:72/Service")))
        {

            sh.AddServiceEndpoint(typeof(MSSQL_MasterToDesktop_Service.ISync), new WSHttpBinding(), "");
           //sh.AddServiceEndpoint(typeof(MSSQL_MasterToDesktop_Service.ISync), new WSHttpBinding(), 

            ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
            smb.HttpGetEnabled = true;
            sh.Description.Behaviors.Add(smb);


            sh.Open();

            System.Console.WriteLine("Waiting for connections...");
            System.Console.ReadLine();


            sh.Close();
        }

    }

不要将服务托管在
localhost
,而是使用系统LAN卡的IP,或对所有网络接口使用“0.0.0.0”(“*”或“+”也可以)

为了从LAN外部访问服务,您可能需要在路由器中设置一些端口转发