Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Невозможно синхронизировать данные - клиент не видит сервера
|
|||
|---|---|---|---|
|
#18+
Делаю синхронизацию между БД на мобильном устройстве на Windows Mobile и БД на сервере по примеру отсюда . Исходные данные: ОС: Windows XP, 7, Server 2008. СУБД: MS SQL Server 2005 Express, 2008 Express. Клиент: эмулятор Windows Mobile, мобильное устройство с Windows Mobile. Раньше всё работало и на локальном компьютере (сервис и клиент (на эмуляторе) запущены на одной машине) и по локальной сети, когда КПК подключен к компьютеру с запущенным сервисом, либо вообще к другому компьютеру в локальной сети. Но на следующий день я прихожу на работу и вдруг просто всё отказывается работать! Ни на эмуляторе, ни на КПК! Никакой синхронизации не просиходит! Ни на одной из шести машин, что я проверял! Выдаёт ошибку: Message="TargetInvocationException" и Message="Could not establish connection to network." Полный текст ошибки: авторSystem.Reflection.TargetInvocationException was unhandled Message="TargetInvocationException" StackTrace: at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean verifyAccess, StackCrawlMark& stackMark) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at Microsoft.Synchronization.Data.ServerSyncProviderProxy.GetChanges(SyncGroupMetadata groupMetadata, SyncSession syncSession) at Microsoft.Synchronization.SyncAgent.DownloadChanges(SyncGroupMetadata groupMetadata) at Microsoft.Synchronization.SyncAgent.Synchronize() at client.Form1.button1_Click(Object sender, EventArgs e) at System.Windows.Forms.Control.OnClick(EventArgs e) at System.Windows.Forms.Button.OnClick(EventArgs e) at System.Windows.Forms.ButtonBase.WnProc(WM wm, Int32 wParam, Int32 lParam) at System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam) at Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain) at System.Windows.Forms.Application.Run(Form fm) at client.Program.Main() InnerException: System.Net.WebException Message="Could not establish connection to network." StackTrace: at System.Net.HttpWebRequest.finishGetResponse() at System.Net.HttpWebRequest.GetResponse() at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request) at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request) at System.Web.Services.Protocols.SoapHttpClientProtocol.doInvoke(String methodName, Object[] parameters, WebClientAsyncResult asyncResult) at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at client.dbcachewebref.dbcacheSyncService.GetChanges(SyncGroupMetadata groupMetadata, SyncSession syncSession) at System.Reflection.RuntimeMethodInfo.InternalInvoke(RuntimeMethodInfo rtmi, Object obj, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture, Boolean isBinderDefault, Assembly caller, Boolean verifyAccess, StackCrawlMark& stackMark) at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean verifyAccess, StackCrawlMark& stackMark) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at Microsoft.Synchronization.Data.ServerSyncProviderProxy.GetChanges(SyncGroupMetadata groupMetadata, SyncSession syncSession) at Microsoft.Synchronization.SyncAgent.DownloadChanges(SyncGroupMetadata groupMetadata) at Microsoft.Synchronization.SyncAgent.Synchronize() at client.Form1.button1_Click(Object sender, EventArgs e) at System.Windows.Forms.Control.OnClick(EventArgs e) at System.Windows.Forms.Button.OnClick(EventArgs e) at System.Windows.Forms.ButtonBase.WnProc(WM wm, Int32 wParam, Int32 lParam) at System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam) at Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain) at System.Windows.Forms.Application.Run(Form fm) at client.Program.Main() Раньше такая проблема возникала, когда не была настроена возможность удалённых подключений к SQL Server 2005 Express, либо в адресе службы вместо айпи указывалось "localhost". Но я уже давно всё это устранил - всё настроено, всё правильно указано, фаерволлы все настроены, все заплатки-сервис паки поставлены. Всё работало на всех компах. Но в один прекрасный момент всё просто отказалось работать на всех компах! Всё таки оговорюсь - раньше у меня на домашнем тоже были проблемы с этим, даже не помню, вообще смог ли я заставить работать это дело дома, но на работе точно всё работало. Я отключал фаерволлы - не работает. Я переустанавливал СУБД - не работает. Я пробовал вместо 2005 поставить 2008 сервер - не работает. Я пробовал на ХР, на 7 и на Server 2008 - не работает. Я пробовал на эмуляторе и на реальном КПК - не работает. Я пробовал на разных машинах в нашей локалке, а также у себя дома - не работает. Я переустанавливал Windows - не работает. ...ОК, я попробовал сделать клиент не на КПК, а на Виндоус Формс - работает! При тех же настройках сервиса и клиента. Я тут только мистику вижу. Скажите, пожалуйста, куда хоть приблизительно надо копать? Ну не могут тут не фаерволлы влиять, ни настройки СУБД (я же всё настроил так же, как когда работало). Я не вижу ничего, что изменилось бы между тем, когда работало, и тем, когда перестало работать - никаких настроек не менялось, ничего нового не устанавливалось. Да и я ведь с чистого листа новую ОС поставил, куда только СУБД, IDE и необходимые сервис паки и фреймворки поставил. Всё сделал, как во всех рекомендациях написано. Точно по такому же пути раньше работало, а теперь - нет. На всех машинах сразу (меня это больше всего удивляет). При этом сеть в порядке - все компы друг друга видят, вобщем, всё как раньше - какие тут могут быть "Could not establish connection to network"? На всякий случай, вот содержимое файла сервиса app.config: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2010, 11:08 |
|
||
|
Невозможно синхронизировать данные - клиент не видит сервера
|
|||
|---|---|---|---|
|
#18+
Добавлю, что порт в сервисе был и 8080 - тоже ничего не хотело синхронизироваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2010, 11:13 |
|
||
|
Невозможно синхронизировать данные - клиент не видит сервера
|
|||
|---|---|---|---|
|
#18+
user7320, Вирусы проверяли? У нас тоже было нечто подобное - вирус захватывал свободные порты (а свободными были только те, которые использовались программами для связи - файрвол, естественно стоит). И при рестарте системы то одно не работало (вирус первым запускался и случайные порты захватывал) то другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2010, 20:44 |
|
||
|
Невозможно синхронизировать данные - клиент не видит сервера
|
|||
|---|---|---|---|
|
#18+
1. у вас клиент не может подключиться к сервису? или сервис к скл серверу? 2. а что это ? Код: plaintext почему вы указываете именно такой порт для сервиса? На каком порту у вас слушает скл сервер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2010, 11:20 |
|
||
|
Невозможно синхронизировать данные - клиент не видит сервера
|
|||
|---|---|---|---|
|
#18+
D129user7320, Вирусы проверяли? У меня тоже было подозрение на вирусы, но ведь даже на с нуля оставленной ОС не работало. Да и антивирусник у меня стоит. Попробую несколькими антивирусниками тщательно проверить. Winnipuh1. у вас клиент не может подключиться к сервису? или сервис к скл серверу? 2. а что это ? Код: plaintext почему вы указываете именно такой порт для сервиса? На каком порту у вас слушает скл сервер? Вначале я подключался к 8080 порту и всё работало до того момента, как вдруг всё перестало работать. Потом и 8080 не работал. А порт 1433 - это, как сказали, стандартный порт для 2008 сервера. Я просто уже не знал, чего там вписать, чтобы оно заработало. И да, я слабо разбираюсь в этих вопросах, так что могу чего-то не знать про порты и т. д., но в начале я делал всё по примеру и там был порт 8080. Мне главное непонятно, почему вначале всё работало, а потом вдруг резко перестало и на всех компьютерах сразу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2010, 13:17 |
|
||
|
Невозможно синхронизировать данные - клиент не видит сервера
|
|||
|---|---|---|---|
|
#18+
user7320D129user7320, Вирусы проверяли? У меня тоже было подозрение на вирусы, но ведь даже на с нуля оставленной ОС не работало. Да и антивирусник у меня стоит. Попробую несколькими антивирусниками тщательно проверить. Winnipuh1. у вас клиент не может подключиться к сервису? или сервис к скл серверу? 2. а что это ? Код: plaintext почему вы указываете именно такой порт для сервиса? На каком порту у вас слушает скл сервер? Вначале я подключался к 8080 порту и всё работало до того момента, как вдруг всё перестало работать. Потом и 8080 не работал. А порт 1433 - это, как сказали, стандартный порт для 2008 сервера. Я просто уже не знал, чего там вписать, чтобы оно заработало. И да, я слабо разбираюсь в этих вопросах, так что могу чего-то не знать про порты и т. д., но в начале я делал всё по примеру и там был порт 8080. Мне главное непонятно, почему вначале всё работало, а потом вдруг резко перестало и на всех компьютерах сразу? вы отделите котлеты от мух.... к сервису подключайтесь к тому порту, на котором он слушает (см. конфигурацию сервиса) 1433 - стандартный порт для скл сервера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2010, 13:33 |
|
||
|
Невозможно синхронизировать данные - клиент не видит сервера
|
|||
|---|---|---|---|
|
#18+
Winnipuh, Я понимаю, не в этом проблема основная. Чтобы не мозолило глаза, я бы убрал 1433 порт из приведённого файла конфига, но не могу найти, где здесь можно свои сообщения править. 1433 порт для эксперимента я ввёл, а на деле всегда использовал 8080 порт (по умолчанию Вижуал Студио предлагается). Ещё одна интересная деталь - тот же проект, но на формах, а не на Виндоус Мобайл, совершенно с теми же настройками и вообще всем тем же работает на ура - всё синхронизируется. Да и во время добавления локального кеша базы данных для сервиса с помощью мастера тоже просиходит первоначальная синхронизация данных - всё работает и на эмуляторе уже таблицы у меня отображаются заполненные из локальной копии БД на эмуляторе. А вот когда с мобильного устройства (эмулятор или реальная машина - неважно) пытаешься до сервиса достучаться, то вышеозначенная ошибка вылазиет... ТАК, СТОП! Вот как раз сейчас попытался и с моего коммуникатора получилось синхронизироваться, что с запущенный через Вижуал сервис, что отдельно от него. А раньше - нивкакую. С эмулятора по-прежнему нельзя (хотя в брандмауэре Виндоус для него все разрешения установил, да даже просто отключал брандмауэр). Я не знаю, что произошло, но раньше даже с коммуникатора не синхронизировалось ничего. На работе же ни с реального устройства (пробовал КПК и коммуникатор), ни с эмулятора не синхронизировалось. Приду завтра - ещё попробую. Вобщем, я так понимаю, что сервис и сам SQL Server сконфигурированы нормально (ещё бы - раньше-то всё работало), а проблема где-то в доступе к сервису лежит со стороны устройства. Кто бы подсказал, где тут надо искать проблему? Эмулятор был и в режиме Cradle, и в режиме Uncradle. Брандмауэр и настраивался, и вообще отключался. Всё равно ничего не помогало. Я раньше грешил на то, что в Виндоус не была настроена связь с устройством (в Висте и 7 вообще всё усложнено с этим, и для каждого нового устройства что-то вроде режима партнёрства или учётной записи заводится, плюс в реестр данные вносятся - реестр я так и не смог почистить от них, ибо банально нет доступа к удалению этих данных даже под суперадминистратором в 7). Но ведь в ХР вообще другая программа связи с мобильными устройствами (Эктив Синк), но и в ХР тоже не работало с теми же симптомами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2010, 22:02 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=19&tid=1397674]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
113ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 285ms |
| total: | 493ms |

| 0 / 0 |
