Возникли проблемы с подключением к веб-службе с помощью приложения для Windows 8.1 phone

#c# #web-services #windows-phone

#c# #веб-службы #windows-phone

Вопрос:

Я впервые делаю что-то подобное, поэтому я, вероятно, буду звучать глупо, но вот оно.

Вот мой метод, который должен подключаться к веб-службе.

 public async void getWebData()
    {
        var uri = new Uri("http://localhost:9011/Service.svc?singleWsdl");
        var httpClient = new HttpClient();

        // Always catch network exceptions for async methods
        try
        {
            var result = await httpClient.GetStringAsync(uri);

            doSomething(result);
        }
        catch
        {
            // Details in ex.Message and ex.HResult.       
        }

        // Once your app is done using the HttpClient object call dispose to 
        // free up system resources (the underlying socket and memory used for the object)
        httpClient.Dispose();
    }
  

Вот моя информация о конфигурации из файла web.config, где, я полагаю, я правильно добавил конечную точку rest, потому что я прочитал, что вы должны использовать конечную точку rest для доступа к веб-службам в приложениях Windows 8.1 phone.

 <bindings>
  <basicHttpBinding>
    <binding name="BasicHttpBinding_IService" />
  </basicHttpBinding>
  <webHttpBinding>
    <binding name="WebHttpBinding_IService" />
  </webHttpBinding>
</bindings>
<services>
  <service name="WcfService.Service1" behaviorConfiguration="MyServiceBehavior">
    <endpoint address="http://localhost:9011/Service.svc?singleWsdl" name="rest"
      binding="webHttpBinding" bindingConfiguration="WebHttpBinding_IService" contract="WcfService.IService" />
    <endpoint address="http://localhost:9011/Service.svc?singleWsdl" name="soap"
      binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService" contract="WcfService.IService" />
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="MyServiceBehavior">
      <!-- To avoid disclosing metadata information, set the values below to false before deployment -->
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
      <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
      <serviceDebug includeExceptionDetailInFaults="false"/>
    </behavior>
  </serviceBehaviors>
  <endpointBehaviors>
    <behavior name="jsonBehavior">
      <enableWebScript/>
    </behavior>
  </endpointBehaviors>
</behaviors>
  

Итак, кто-нибудь может сказать мне, что я делаю не так, чтобы получить доступ к моему веб-сервису, потому что ничего из того, что я пробовал, не работало…

Комментарии:

1. что является исключением?

2. Я не получаю исключение. Я вставил точку останова в строку результата, и она никогда не достигает точки останова

3. Вы новичок в C # и веб-службе? Потому что в соответствии с вашим web.config вам нужно использовать прокси-класс, но вы напрямую получаете доступ к wsdl в своем коде. Другое предложение — попробовать без асинхронности и ожидания.

4. следуйте этому примеру: prathapk.net/consuming-wcf-service-in-windows-phone-application

5. Может быть, глупый вопрос, но вы уверены, что можете нажать localhost с телефона / эмулятора? Не знаю, действительно ли он распознает. Потому localhost что всегда Me .