Проблемы при запуске кода расширения рабочего стола из приложения UWP - PullRequest
0 голосов
/ 13 июня 2018

У меня есть требование для размещения службы WCF для получения ответов от службы.Поскольку приложение UWP не имеет возможностей хостинга wcf, я выбрал этот компонент в системном трее, где я буду размещать свой сервис, чтобы получать ответы и общаться с приложением UWP через сервис приложения и показывать тосты.

Но компонент systrayзаканчивается сразу после запуска.Чтобы прояснить ситуацию с моей интеграцией systray с uwp, я уже проверил и работал, а затем расширил его с помощью хостинга WCF.

Позже я попытался добавить отладки, показывающие окно сообщения об исключениях, и обнаружил, что вызов службы открытия WCF выбрасывается ниже.исключение.

" System.ServiceModel.AddressAccessDeniedException: HTTP не может зарегистрировать URL-адрес http :: 1234 "

Позже выяснилось, что приложение sys tray требует прав администратора для регистрацииURL-адрес, который размещается как часть службы и как приложение UWP запускает системный трей через API полного доверия, а не через повышение прав администратора.

Поэтому, чтобы решить эту проблему, я получил 2 подхода и попробовал, как указано ниже:

1) Итак, я попытался добавить URL reg вручную, используя netsh, и та же программа работает.Просто для настройки я попытался запустить «ту же команду netsh в самом приложении sys tray с admin priv» и только запустил приложение tray, и я не увидел никаких исключений и увидел, что мой сервис размещен, проверен в браузере.

ТеперьЯ застрял с предоставлением прав администратора при запуске приложения sys tray через приложение UWP.

Но если UWP запускает приложение в трее, даже если я включил команду netsh, оно все равно показывает то же исключение.(Может быть, родительский процесс (так как запуск от имени администратора - это не применимо для приложений UWP) не имеет прав администратора, поэтому даже мой netsh cmd в приложении sys tray не работает ???)

ИЛИ есть ли способпредоставить аргументы или любой другой API для запуска приложения в трее с администратором через API полного доверия из приложения UWP ???

2) Попытка добавить файл манифеста приложения в приложение в трее и изменить, как показано ниже

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

Но это также показывает окно с сообщением об ошибке, требующим повышения и выхода.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 13 июня 2018

Запрос повышенных привилегий в настоящее время не поддерживается для процессов настольного моста.Так что то, что вы видите здесь, в настоящее время ожидается.Хорошей новостью является то, что мы добавляем новую возможность в RS5 (обновление осенью 2018 года) под названием «allowElevation», которая будет включать сценарии, требующие повышения.

Вы сможете начать тестирование новой возможности с самой последнейСборка Windows Insider Preview и соответствующий SDK.

ОБНОВЛЕНИЕ 10/1/2018: я опубликовал образец этой новой возможности https://stefanwick.com/2018/10/01/app-elevation-samples-part-1/

...