Вк отладка не открывается: Что делать, если не работает отладка на сервере 1С

Содержание

Отладка iframe приложения непосредственно в среде vk.com с использованием php + xdebug / Хабр

В этой статье вы узнаете, как можно отлаживать iframe приложение непосредственно внутри среды vk.com, то есть как белый человек. Разработка приложения непосредственно в среде не требует создания песочниц (эмуляции вконтакте), очень удобно работать непосредственно с API вконтакте, видя все переменные, которые передаются туда и обратно непосредственно в трейсе. Не претендую на оригинальность, я просто проверил, что такой статьи нету в тырнете и все, а идея очевидна и проста. Идею придумал за кружкой чая, ибо если бы я успел его допить, то начал бы гуглить.

Злость

У меня вызывает бурю негодования, когда я не могу нормально разрабатывать софт. В PHP для меня самым ненавистным является var_dump, print_r которыми я пользуюсь в экстренной ситуации, то есть в момент когда отладить им будет быстрее, чем настроить полный стек IDE для работы, то есть меньше чем пол часа, если с нуля — начиная с настройки апачи.

Во всех остальных случаях, если нет нормального стека, меня это вымораживает и мне хочется всячески поправить эту ситуацию.

Проблема

Есть Iframe приложение, внутри vk.com. Оно постоянно взаимодействует с пользователем, API вконтакте и другими вещами, вроде голосов, используя разные секретные ключи и без них. Естественно все это чертовски трудно отлаживать. Из чего следует, что приложения начиная с определенного уровня будут стоить чрезвычайно много программист часов. В таких ситуациях частично исправляют ситуацию песочницы. Если брать в рассмотрение Iframe, то если чуть раскинуть мозгами песочница в любой её вариации теряет актуальнсть ввиду сложности и не универсальности, ведь приложение можно тупо замапить на сервер разработки, а там сидит программист с IDE и xdebug.

Стек разработки

XAMPP 1.7.4, PHP 5.3, NetBeans 7.01, vk.com(iframe), xdebug, DNS

Настройка стека

Извиняюсь за достаточно скудную текстовую информацию. Я подготовил видео, что бы было понятно.

— Настройка apache
Идем в virtual-host

<VirtualHost *:84>
	DocumentRoot D:\work\other\htdocs\ru-wartur-app\www\public-html
	ServerName app.wartur.ru
	ErrorLog D:\work\other\htdocs\ru-wartur-app\log\apache2\error.log
	CustomLog D:\work\other\htdocs\ru-wartur-app\log\apache2\access.log common
	<Directory D:\work\other\htdocs\ru-wartur-app\www\public-html>
		Options Indexes FollowSymLinks Includes ExecCGI
		AllowOverride All
		Order allow,deny
		Allow from all
	</Directory>
</VirtualHost>

Перезапускам наш локальный сервер разработки, в моем случае XAMPP (всем советую).
Не смущаемся по поводу 84-го порта. Думаю, если в фирме будет много разработчиков, то там и до 90-го дойти могут, а у меня они дома реально все забиты.

— Настройки dns
Создаем запись A. В моем случае app.wartur.ru — 188.134.79.140, то есть маппинг на роутер.

— Настройки vkontakte
Идем Вконтакте->настройки->Адрес IFrame: app.wartur.ru:84/

— Создание проекта NetBeans
Мы будем считать что xdebug у вас настроен, останавливаться на этом не будем.
Project Settings -> Run Configuration -> Project URL: в моем случае app.wartur.ru:84/

— Запускаем и радуемся жизни
— Ставим точку останова и запускаем на отладку внутри IDE, теперь у нас в браузере создалась сессия и IDE встала на режим отладки
— Запускаем приложение, в моем случае vk.com/app2820627, видим профит от клика по каждой новой ссылки, запуска API или еще чего вы захотите.

Видео

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

Надеюсь помог. Удачи всем. Очень люблю, когда статья за один час запиливается, а не растягивается на 3-4 часа.

UPD: Все что написано выше достаточно сложно. Все гораздо проще в случае, если вам не надо параллельно давать доступ из вне к своей рабочей машине
— Убираем из схемы настройки DNS и все что с этим связано.
— Ставим в настройках приложения какой-нибудь localhost, в моем случае app.warturru (мне самому не нравился этот порт 84, вот его убрал ура!!!)
Пасиба хабру за подсказки! Всем удачи!

Не работает отладка 1С. Разбираем основные причины.

Разработка 1С 17.10.2020

Разберем основные случаи когда и почему не работает отладка 1С.

1. В списке предметов отладки не видны серверные сеансы

Возможно сервер 1С запущен не в режиме отладки. Для того чтобы включить режим отладки, службу сервера 1С нужно запустить с ключом -debug. Пошаговый разбор как это сделать тут.

2. В списке предметов отладки не видны ни клиентские ни серверные сеансы.

Еще одной причиной отсутствия предметов отладки в списке является то, что предметы отладки находится не на том компьютере где запущен отладчик 1С. Актуально как для серверных так и для клиентских сеансов. Для решения проблемы обычно достаточно указать имя удаленного компьютера для поиска предметов отладки и обновить список.

Если и после этого список пустой, то нужно вбить вместо имени IP-адрес удалённого компьютера. В случае если это помогло, то рекомендуется прописать привязки имен и IP-адресов компьютеров в файле hosts. Если и это не помогло то необходимо проверить настройку фаервола, разрешены ли на сервере 1С (или удаленном клиенте) входящие соединения с компьютера где запущен отладчик на порты 1560-1591.

3. В списке предметов отладки не видны клиентские сеансы.

Причина как правил в том, что не разрешена отладка клиентского приложения. Для разрешения отладки клиентского сеанса достаточно в настройках программы в режиме 1С Предприятие указать в параметре «Отладка в текущем сеансе» — Разрешена TCP/IP.

4. Предмет отладки виден в конфигураторе и подключается, но точка останова все равно не срабатывает на строке кода.

Данная проблема актуальна при отладке по протоколу TCP. Причина в том что отладчик не может принимать входящие соединение из-за того что брандмауер или фаервол блокируют сетевое взаимодействие между отладчиком и предметом отладки. Тут нужно понимать, что отладчик не только устанавливает исходящее соединение с предметом отладки, но также должен иметь возможность принимать входящее соединение. Проблема решается отключением фаервола на компьютере где запущен отладчик либо открытием входящих соединений на портах 1560-1591 для исполняемого файла 1cv8.exe.

5. Программный код выполняется в сеансе фонового задания.

В типовых конфигурациях 1С широко использует запуск длительных процедур в фоновом режиме. Для этого на сервере запускается отдельный фоновый сеанс помимо основного серверного сеанса пользователя. Проблема решается включением автоматического подключения отладчика к фоновым сеансам. После этого как правило отладка начинает работать, если нет проблем с фаерволом описанных выше.

6. Программный код выполняется в сеансе web-сервиса или http-сервиса.

Как правило сеанс подключения к web-сервису http-сервису существует непродолжительное время и вручную подключиться к нему проблематично. Здесь так же достаточно включить автоматическое подключение к таким сеансам и отладчик сам будет находить и подключать предметы отладки, ваша задача только поставить точку останова в коде.

Подводим итоги

Как видим основные причины неработающей отладки 1С легко решаются. Пожалуй самой трудно-диагностируемой проблемой является работающий в сети фаервол, который может блокировать соединения между отладчиком и предметом отладки. В самом простом случае достаточно открыть порты для подключения как описано выше. В более сложном случае, когда отладчик и предмет отладки разделены NAT, может потребоваться проброс портов. Самый крайний случай когда из-за политик безопасности прямое сетевой взаимодействие по протоколу TCP между отладчиком и предметом отладки не возможно, следует рассмотреть вариант отладки по протоколу HTTP.

Напоследок стоит отметить, что как правило отладка производиться на тестовом сервере 1С, который запускается на портах отличных от типового диапазона 1560-1561. Поэтому, все изложенное выше в части номеров портов, следует рассматривать в контексте ваших реально используемых диапазонов портов.

 



Еще можно посмотреть



Похожие записи

Удаленная отладка Chrome (отладка по USB) не работает для Samsung Galaxy S3 под управлением Android 4.3

спросил

Изменено 3 года, 3 месяца назад

Просмотрено 105 тысяч раз

С тех пор, как я обновил свой Samsung Galaxy S3 до Android 4. 3 (с 4.1.2), я не могу использовать удаленную отладку Chrome для Android (подробнее здесь).

На моем телефоне включены параметры разработчика и отладка по USB, и это прекрасно работает на Android 4.1.2. Теперь, когда я подключаю свой телефон к компьютеру, он просто подключается как устройство хранения мультимедиа и не обнаруживается хромом как USB-устройство.

Я исключаю любые проблемы с хромом, так как я могу отлаживать USB с помощью Google Nexus4, а также, глядя на некоторые другие темы (здесь и в других местах), похоже, проблема с обновлением Samsung 4.3.

Любые указатели, чтобы заставить это работать?

  • google-chrome
  • samsung-mobile
  • android-4.3-jelly-bean
  • usb-отладка

2

Мои устройства перестали работать, так как Chrome деактивировал устаревший плагин ADB, поскольку он теперь встроен в инструменты разработчика.

Я загрузил SDK и следовал инструкциям разработчиков Chrome.

Как бы то ни было, я обнаружил, что инструкций, предоставленных Альфонсо, недостаточно, и я сделал это в Windows 8: 9.0005
  1. Загрузите Android SDK здесь (раздел «Только инструменты SDK») и разархивируйте содержимое.
  2. Запустите SDK Manager.exe и установите инструменты платформы Android SDK
  3. Откройте командную строку (просто нажмите кнопку Windows и введите cmd.exe)
  4. Введите путь с пример: cd c:/downloads/sdk/платформенные инструменты
  5. Откройте ADB, введя adb.exe
  6. Запустите следующую команду, введя ее и нажав клавишу ввода: устройства adb
  7. Проверьте, появилось ли на вашем устройстве приглашение, если вы по-прежнему не видите свой телефон в Inspect Devices выполните следующие команды одну за другой (исключая «) «
    adb kill-server
    » « стартовый сервер adb » « adb-устройства »

У меня были серьезные проблемы, и мне удалось заставить его работать с помощью этих шагов. Если у вас все еще есть проблемы, погуглите руководство Удаленная отладка на Android с Chrome и проверьте часть о драйверах. У меня были проблемы с Samsung Galaxy Nexus, для которых требовались специальные драйверы для совместимости с ADB.


Обновление

Если вы используете Windows 10 и не можете найти ссылку для загрузки Android SDK; вы можете пропустить #1 и #2. Все, что вам нужно, это активировать «Android Debug Bridge». Перейдите прямо к # 3 — # 7 после загрузки и выполнения «инструментов платформы» (https://developer.android.com/studio/releases/platform-tools.html)

. 17

Попытавшись следовать ответу Valros.nu, я обнаружил, что загрузка sdk теперь связана с android studio в установщике exe размером 840 МБ.

Поскольку все, что вам нужно для этой конкретной программы, — это программа adb, вы можете получить ее в автономном установщике у ребят из xda:

http://forum. xda-developers.com/showthread.php?t=2317790

Обратите внимание, что вам не нужно вводить adb.exe , просто введите adb devices в командную строку, которая запускается после установки.

Кроме того, мне пришлось отключить и снова подключить мой Samsung s4, чтобы на телефоне появилось приглашение удаленной отладки

11

Немного осмотревшись, я наткнулся на это. Судя по всему, решения этой проблемы пока нет, но есть обходной путь — вернуться к устаревшему рабочему процессу.

Устаревший рабочий процесс действительно работал для меня, и единственное, что мне нужно было сделать, это перейти в папку platform-tools из загрузки Android SDK, открыть здесь командное окно и запустить команду «adb devices». Это привело к тому, что на экране моего мобильного телефона появилась панель отпечатков пальцев RSA-ключа компьютера, и после предоставления разрешения устройство появилось на странице проверки Chrome.

Оказывается, проблема была не в обновлении мобильной ОС, а в Chrome (я был сбит с толку тем фактом, что он каким-то образом работал на моем Nexus4). В более старых версиях Chrome не было необходимости загружать Android SDK размером 500 с лишним МБ, поскольку он поддерживал плагин ADB. Но с последней версией Chrome, я думаю, единственный способ уйти от прежней версии.

7

У меня Samsung Galaxy S3, и он не отображается ни на вкладке «Удаленные устройства», ни в chrome://inspect. Устройство отображалось в диспетчере устройств Windows как GT-I9.300, однако. У меня сработало:

  1. Подключите мобильный телефон к переднему USB-порту
  2. На моем телефоне нажмите уведомление об успешном подключении
  3. Убедитесь, что выбран тип подключения Камера (PTP)
  4. На моем компьютере с Windows загрузите установщик с https://github.com/koush/UniversalAdbDriver
  5. Запустить 🙂
  6. Открыть cmd. exe
  7. cd "C:\Program Files (x86)\ClockworkMod\Универсальный драйвер Adb"
  8. устройства adb
  9. Откройте Chrome как на мобильном телефоне, так и на компьютере с Windows
  10. На компьютере с Windows перейдите на chrome://inspect — там через некоторое время вы должны увидеть целевой телефон 🙂

Не уверен, что это как-то повлияло на весь поток, но в какой-то момент я установил, а затем удалил драйверы от Samsung: http://www.samsung.com/us/support/downloads/ > Mobile > Телефоны > Galaxy S > S III > Разблокированные > http://www.samsung.com/us/support/owners/product/galaxy-s-iii-unlocked#downloads

2

Для меня решением было загрузить Android SDK и запустить устройство adb , которое запустило демон adb.

1

Я знаю, что это старый вопрос, но я решил также опубликовать свое решение:

  • Обновите Chrome на своем телефоне и на своем ПК.
  • Даже если он говорит, что у вас есть последняя версия драйвера для вашего устройства внутри Диспетчер устройств, вам может понадобиться альтернатива. Погуглите последние версии драйверов Samsung и попробуйте обновить драйверы.

0

Я успешно использовал ade.exe, как описано выше, а также последнюю версию Chrome Canary. По-видимому, ваша настольная версия Chrome должна быть выше, чем версия, работающая на вашем устройстве Android.

0

Для меня пункт меню Inspect Devices был недоступен (вообще не отображался). Но простой просмотр chrome://inspect/#devices показал мне мое устройство, и я смог использовать порт вперед и т. д. Я понятия не имею, почему пункт меню не отображается.

Телефон: Android Galaxy S4

ОС: Mac OS X

Если это кому-то поможет, я опубликую то, что сработало для меня.

Мне пришлось подключить свой S3 к прямому USB-порту моего ПК, чтобы он предложил мне принять подпись RSA. До этого мой S3 был подключен к концентратору.

Теперь S3 определяется как при использовании прямого USB порта ПК, так и через хаб.

ПРИМЕЧАНИЕ . Возможно, вам также потребуется запустить adb devices из командной строки, чтобы ваш S3 повторно запросил разрешение.

 D:\apps\android-sdk-windows\platform-tools>устройства adb
Список подключенных устройств
* демон не запущен. запустив его сейчас на порту 5037 *
* демон успешно запущен *
9283759342847566 несанкционированный
 

… принять подпись на телефоне …

 D:\apps\android-sdk-windows\platform-tools>устройства adb
Список подключенных устройств
9283759342847566 устройство
 

Те, кто обновил свое устройство до Android 4.2 Jelly Bean или выше или имея устройство на базе Android 4.2 JB или выше, не найдет Параметры разработчика в меню настроек. Параметры разработчика скрывают по умолчанию на 4.2 jelly bean и более поздних версиях Android. Следуйте ниже шаги, чтобы показать параметры разработчика.

  1. Перейдите в «Настройки» >> «О программе» (на большинстве смартфонов и планшетов Android) ИЛИ

Перейдите в «Настройки» >> вкладка «Дополнительно/Общие» >> «О программе» (на Samsung Galaxy S3, Galaxy S4, Galaxy Note 8.0, Galaxy Tab 3 и другие галактики Смартфон и планшет с Android 4.2/4.3 Jelly Bean) ИЛИ

Перейдите в «Настройки» >> «Основные» >> «О программе» (на Samsung Galaxy Note 2, Galaxy Note 3 и некоторые другие устройства Galaxy с Android 4.3 Jelly Bean или 4.4 KitKat) ИЛИ

Выберите «Настройки» > «О программе» > «Информация о программном обеспечении» > «Дополнительно» (в HTC One или другие устройства HTC с Android 4.2 Jelly Bean или выше) 2. Теперь прокрутите до номера сборки и коснитесь его 7 раз. Появится сообщение о том, что вы теперь разработчик.

  1. Просто вернитесь в предыдущее меню, чтобы увидеть опцию разработчика.

Кредит на www.androidofficer.com

2

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Обязательно, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Пакет

vk — github.

com/nedenwalker/goth/providers/vk — Пакеты Go

Пакет vk реализует протокол OAuth3 для аутентификации пользователей через vk.com. Этот пакет можно использовать в качестве эталонной реализации поставщика OAuth3 для Goth.

  • введите Провайдер
    • func New (clientKey, секрет, строка callbackURL, области действия … строка) * Provider
    • func (p *Provider) BeginAuth (строка состояния) (goth.Session, ошибка)
    • func (p *Provider) Client() *http.Client
    • func (p *Provider) Debug (bool отладки)
    • func (p *Provider) FetchUser(session goth.Session) (goth.User, ошибка)
    • func (p *Provider) Name() строка
    • func (p *Provider) RefreshToken (строка RefreshToken) (*oauth3.Token, ошибка)
    • func (p *Provider) RefreshTokenAvailable() bool
    • func (p *Provider) SetName (строка имени)
    • func (p *Provider) UnmarshalSession(строка данных) (goth. Session, ошибка)
  • тип Сессия
    • func (s *Session) Authorize(provider goth.Provider, params goth.Params) (строка, ошибка)
    • func (s *Session) GetAuthURL() (строка, ошибка)
    • func (s *Session) Marshal() строка

Этот раздел пуст.

Этот раздел пуст.

Этот раздел пуст.

 тип Структура поставщика {
Строка ClientKey
Секретная строка
Строка обратного URL-адреса
HTTP-клиент *http.Client
// содержит отфильтрованные или неэкспортированные поля
} 

Provider — это реализация goth.Provider для доступа к Github.

 func New(clientKey, secret, callbackURL string, scopes ...string) *Provider 

New создает нового провайдера ВКонтакте и устанавливает важные детали подключения. Вы всегда должны вызывать `vk.New`, чтобы получить нового провайдера. Никогда не пытайтесь создать вручную.

 func (p *Provider) BeginAuth(строка состояния) (goth. Session, ошибка) 

BeginAuth запрашивает у VK конечную точку аутентификации.

 func (p *Provider) Client() *http.Client 
 func (p *Provider) Debug(debug bool) 

Debug не работает для пакета vk.

 func (p *Provider) FetchUser(session goth.Session) (goth.User, error) 

FetchUser зайдет в ВК и получит доступ к основной информации о пользователе.

 func (p *Provider) Name() string 

Имя — это имя, используемое для последующего получения этого провайдера.

 func (p *Provider) RefreshToken (refreshToken string) (*oauth3.Token, ошибка) 

Токен обновления RefreshToken не предоставляется vk

 func (p *Provider) RefreshTokenAvailable() bool 

RefreshTokenAvailable токен обновления не предоставляется vk

 func (p *Provider) SetName(строка имени) 

SetName для обновления имени провайдера (необходимо в случае нескольких провайдеров 1 типа)

 func (p *Provider) UnmarshalSession(строка данных) (goth.	

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Закрыть
Menu