2016-12-09 8 views
0

У меня появляется сообщение об ошибке «произошла ошибка при отправке запроса», когда мое приложение UWP пытается связаться с сервисом WCF Service Service (который извлекает информацию с сервера базы данных). Эта ошибка возникает, когда комманда app/service работает в эмуляторе и телефоне Windows Mobile 10. С другой стороны, эта комбинация приложений/сервисов отлично работает на локальном компьютере (мой настольный ПК под управлением Windows 10). Похоже, что служба WCF может не работать, когда приложение/служба запущена в эмуляторе или телефоне. Я хотел бы исправить эту проблему, если это возможно. Если это невозможно, предложите альтернативу.Получить «ошибка при отправке запроса» в эмуляторе и телефоне Windows Mobile 10

То, что я пытаюсь сделать, - использовать телефон Windows 10 для подключения к нашему серверу базы данных (SQL Server) (все в локальной сети WiFi, а не через Интернет) для просмотра или обновления данных в базе данных. К сожалению UWP не позволяет UWP приложения для подключения к серверу базы данных напрямую, как указано в этой веб-странице:

https://code.msdn.microsoft.com/How-to-access-data-from-935e360c#content

В соответствии с этой веб-страницы, мне нужно создать приложение службы WCF в качестве среднего человека между UWP-приложением и сервером базы данных. Именно по этой причине мне нужно приложение Service WCF в дополнение к моему UWP-приложению.

Обратите внимание, что я пробовал образец программы на веб-странице, показанной выше. К сожалению, у него такая же проблема, как и у моего приложения.

Как указано выше, программа-образец и мое приложение работают нормально на локальном компьютере (база данных находится на сервере базы данных, который не находится в локальной машине). Но обе показывают ту же ошибку, когда они работают в эмуляторе Windows или на телефоне Windows.

Я попытался сузить это, используя приложение службы WCF для bare-bone, которое не подключается к серверу базы данных, чтобы исключить соединение с базой данных, имеет какое-либо отношение к этой проблеме. Приложение для использования WCF для bare-bone просто возвращает данные жесткого кодирования в приложение UWP. Но у него все еще есть та же проблема. Это означает, что проблема не имеет ничего общего с подключением к базе данных.

Приложение-приложение WCF-приложения с пустой костью создается с использованием шаблона приложения службы WCF. Я только переименовал классы (из Service1/IService в DbService/IDbService). Ничего.

Ошибка приведена в инструкции GetDataAsync (...) в примере, показанном ниже. Именно в OnLoaded() обработчик событий MainPage.xaml.cs в UWP приложения:

private async void OnLoaded(object sender, RoutedEventArgs e) 
    { 
    try 
     { 
     RefDbService.DbServiceClient client1 = new RefDbService.DbServiceClient(); 
     String sTestMsg = await client1.GetDataAsync(12345); 
     // The above statement triggers the error in Emulator or in phone. 
     this.lblDebugMsg.Text = sTestMsg; 
     } 
    catch(Exception ex) 
     { 
     this.lblDebugMsg.Text = ex.Message; 
     } 
    } 

Заранее спасибо за любую помощь.

Джей Чан

+0

Вы проверили сетевое соединение между вашим клиентом и вашим сервером? Это похоже на проблему с сетью. – ZORRO

+0

Извините, что я, вероятно, не был ясен в своем оригинальном посте.UWP и служба WCF работают на одном устройстве (локальная машина или эмулятор Windows Mobile 10 или настоящий Windows 10 Phone). Но сервер базы данных находится на другом компьютере (в той же локальной сети). Я только что изменил свой пост, чтобы отразить эту дополнительную информацию. Другими словами, это не проблема сети, потому что у UWP и службы WCF нет проблем с получением информации с сервера базы данных, если комбо работает на локальном компьютере (сервер базы данных находится на другом компьютере). –

+2

Как вы разместили службу WCF в Windows 10 Mobile? AFAIK, это невозможно, поскольку мы не можем запускать классические приложения на Windows 10 Mobile. Для общего сценария служба WCF должна размещаться на сервере, например, на сервере, где находится ваша база данных. – ZORRO

ответ

-1

Мое последнее сообщение было неправильно URL (URL) дублируется. Ниже приведено исправленное:

Я наконец создал небольшую пробную программу (сервис WCF и приложение UWP), которая фактически работает. Если кто-то должен сделать то же самое, вам нужно следовать этому руководству https://msdn.microsoft.com/en-us/library/ms734712(v=vs.110).aspx, чтобы узнать, как написать библиотеку Windows Service Windows WCF (требуется хост-программа), которая работает с консольным приложением, а затем после этой веб-страницы https://msdn.microsoft.com/en-us/library/ms733766(v=vs.110).aspx, чтобы узнать, как преобразовать его в приложение веб-службы WCF, работающее под IIS, и работать с UWP. Не забудьте обновить служебную ссылку приложения при изменении конфигурации службы WCF.

 Смежные вопросы

  • Нет связанных вопросов^_^