1

我有以下问题:

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

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

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

我如何更改我的控制台应用程序才能使其正常工作?

提前 THX,马丁

 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();
        }

    }
4

1 回答 1

0

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

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

于 2013-06-13T09:48:58.713 回答