将Xamarin.Forms应用程序连接到Selfhosted WCF服务应用程序

时间:2017-07-06 13:20:08

标签: c# wcf service xamarin.forms

我想使用WCF&amp ;;将我的计算机中的一些数据发送到我的网络中的手机。 Xamarin。我没有找到任何文档,需要一些帮助才能使其工作。

Working with WCF in Xamarin并没有真正帮助我,因为它需要一个.svc文件。

甚至可以从xamarin连接到本地网络中的应用程序吗?

对不起,如果这个问题看起来很愚蠢,但我真的很蠢,不知道如何解决这个问题。

如果任何人只能指出正确的方向,我会非常感激。

修改

到目前为止,我设法使用.svc从我的服务中获取SLsvcUtil.exe文件。

到目前为止,这是我的服务(ServerSide):

System.Net.IPHostEntry entry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName());

string ipaddress = entry.AddressList.First(add => add.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork).ToString();


using (ServiceHost host = new ServiceHost(typeof(BusyService)))
{
     ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
     smb.HttpGetEnabled = true;
     smb.HttpGetUrl = new Uri($"http://{ipaddress}:8777/BusyService");
     smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
     host.Description.Behaviors.Add(smb);                

     host.Open();

     Console.WriteLine($"Server started at: {ipaddress}:8777/BusyService");

     Console.ReadLine();
 }

的App.config

 <system.serviceModel>        
    <services>
        <service name="ConsoleApplication3.BusyService">
            <endpoint address="http://192.168.56.1:8777/BusyService" binding="basicHttpBinding"
                bindingConfiguration="" name="DefaultEndpoint" contract="ConsoleApplication3.IBusyService" />
        </service>
    </services>
</system.serviceModel>

现在我的AndroiApp只是抛出TimeoutEx或EndpointNotFoundEx。

我检查过的事情:

  1. AntiMalware已关闭
  2. 端口8777在防火墙中是免费的
  3. 服务器端点和客户端连接到端点是相同的
  4. 这里有什么问题?

    注意:

    我之前得到了this例外但是我设法摆脱了调用_client.OpenAsync()并在_client_OpenCompleted中调用我的方法 - 不确定这是否正确...我已经在上面的教程中没见过any1打开客户端......

0 个答案:

没有答案