Вопрос

У нас есть приложение WPF, которое имеет два варианта с согласованным пользовательским интерфейсом и т.д., один из которых запускается с рабочего стола ОС Windows, а другой должен запускаться как приложение XBAP.

В настоящее время я публикую приложение XBAP на моем локальном компьютере IIS (Windows XP Pro), также я включил полное доверие в своем сценарии, поскольку это необходимо (конфигурация Microsoft .NET Framework 2.0, полное доверие URL) + файл pfx (для имени моего компьютера), который устанавливается, когда пользователь на другом компьютере вводит URL-адрес из браузера IE на своем компьютере.

Допустим, я хочу продать приложение XBAP клиенту, поскольку ему нужно централизованное приложение, а не настольное, тогда как я буду это делать?Может ли кто-нибудь с опытом развертывания XBAP подсказать мне?Должен ли я выполнить настройку, которая настроит приложение на его веб-сервере, и все?(предполагая, что веб-сервер имеет .net 3.5 sp1) Как насчет pfx и полного доверия, должен ли я сказать ему, чтобы он это сделал?

Это было полезно?

Решение

Я работал в аналогичной ситуации с использованием ClickOnce в качестве движка для развертывания двоичных файлов как XBAP, так и стандартного WPF.Чтобы установить веб-сайт XBAP на сайте клиента, мы бы попросили установщика создать виртуальный каталог в IIS, а затем выполнить пользовательский шаг для подписи манифестов ClickOnce.Этот шаг был необходим, поскольку приложению требовался доступ к сгенерированному файлу конфигурации, который содержал информацию о клиентской среде.

Вот несколько заметок о проблемах, с которыми я столкнулся при использовании XBAP.

  • Зависимость фреймворка версии v3.0 или выше от рабочей станции Клиента.(Более общее замечание при работе с WPF, поскольку, если вы не используете управляемый рабочий стол, вам, возможно, придется развернуть и это)
  • Необъяснимым образом пользовательский кэш ClickOnce будет признан недействительным, что потребует от пользователя очистки своего кэша с помощью:rundll32 %windir%\system32\dfshim.dll Очистить кэш lineappcache
  • Неправильная установка Framework версии v3.0 / Internet Explorer требует воссоздания профиля пользователя, переустановки dotNet Framework или Internet Explorer.
  • Плохие сообщения об ошибках от ClickOnce при сбое развертывания.Часто он сообщал об общем исключении при развертывании, и исправление было одним из описанных выше шагов.
  • При использовании любой аутентификации перед веб-сайтом, такой как ASP.Net при использовании форм аутентификации, доверенного IIS (не в интрасети) или прокси-сервера, такого как ISA, в стеке Microsoft возникает проблема, из-за которой IE не сможет передать аутентификацию движку ClickOnce.Проблема в том, что IE успешно пройдет аутентификацию, но не сможет передать контекст безопасности ClickOnce.Когда ClickOnce попытается развернуть файлы приложения, у него не будет контекста безопасности, и проверка подлинности завершится ошибкой.Но если вы зайдете в Свойства обозревателя -> Безопасность -> выберите "Локальная интрасеть" -> Нажмите "Пользовательский уровень ...", вы увидите список настроек.Прокрутите список до конца и в разделе Аутентификация пользователя -> Вход в систему -> убедитесь, что выбран параметр "Автоматический вход в систему с текущим именем пользователя и паролем".Это должно позволить IE передавать информацию об аутентификации приложениям click once.

Другие советы

Чтобы запустить приложение XBAP, вашему клиенту также необходимо запустить .NET Framework. Невозможно запустить XBAP без установленного .NET Framework.

По умолчанию вашему приложению предоставляется только частичное разрешение. Чтобы включить FullTrust, необходимо либо предоставить разрешение URL-адресу вашего приложения на клиенте:

caspol -m -ag 1 -url "http://server/app/*" FullTrust -exclusive on

или вы можете добавить сертификат безопасности в доверенные сертификаты клиента. Пошаговое руководство доступно здесь: Как запустить WPF - XBAP в качестве приложения полного доверия .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top