У меня есть требование для размещения службы 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" />
Но это также показывает окно с сообщением об ошибке, требующим повышения и выхода.
Пожалуйста, помогите.