Развернуть приложение XBAP?

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

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

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


person abmv    schedule 07.05.2009    source источник


Ответы (2)


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

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

  • Зависимость Framework v3.0 или выше на рабочей станции Клиента. (Больше общего примечания при работе с WPF, поскольку, если вы не используете управляемый рабочий стол, вам, возможно, придется развернуть и его)
  • По непонятным причинам кеш ClickOnce пользователя станет недействительным, что потребует от пользователя очистки кеша с помощью: rundll32% windir% \ system32 \ dfshim.dll CleanOnlineAppCache
  • Неправильная установка Framework v3.0 / Internet Explorer требует повторного создания профиля пользователя, переустановки dotNet framework или переустановки Internet Explorer.
  • Плохие сообщения об ошибках от ClickOnce при сбое развертывания. Часто он сообщал об общем исключении развертывания, и исправление было одним из вышеуказанных шагов.
  • При использовании любой аутентификации перед веб-сайтом, такой как аутентификация форм ASP.Net, доверенный IIS (не в интрасети) или прокси-сервер, такой как ISA, в стеке Microsoft возникает проблема, когда IE не сможет передать аутентификацию на движок ClickOnce. Проблема в том, что IE успешно аутентифицируется, но не сможет передать контекст безопасности ClickOnce. Когда ClickOnce пытается развернуть файлы приложения, у него не будет контекста безопасности, и проверка подлинности завершится ошибкой. Но если вы перейдете в «Свойства обозревателя» -> «Безопасность» -> выберите «Локальная интрасеть» -> нажмите «Другой уровень ...», вы увидите список настроек. Прокрутите список до конца и в разделе «Проверка подлинности пользователя» -> «Вход в систему» ​​-> убедитесь, что выбран параметр «Автоматический вход в систему с текущим именем пользователя и паролем». Это должно позволить IE передавать информацию для аутентификации приложениям, которые щелкнули один раз.
person David H    schedule 12.05.2009
comment
Мне было интересно, нужно будет изменить файл конфигурации приложений XBAP, скажем, строку подключения к базе данных и т.д ... как мне подписать файл после? Скажем, я пошел к клиенту и изменил свой файл конфигурации, приложение XBAP не будет работать правильно? - person abmv; 13.05.2009
comment
Правильно. После изменения файла конфигурации (или любого другого файла, управляемого ClickOnce), хеш-значения, хранящиеся в манифестах ClickOnce, станут недействительными, и вы получите ошибку развертывания clickonce. Это верно для любого типа приложения ClickOnce. Чтобы разрешить эту ситуацию, у меня был настраиваемый шаг установки, который создавал конфигурацию, а затем регенерировал манифесты с использованием пространства имен Microsoft.Build.Tasks.Deployment.ManifestUtilities. - person David H; 13.05.2009
comment
В1. Не могли бы вы опубликовать код или ссылку на рабочий образец действия на этапе пользовательской установки. Вы использовали WiX или добавили проект установщика для этого в Visual Studio? Q2.Я предполагаю, что вы сделали ClickOnce специально для клиента, я прав? Вы должны были опубликовать ClickOnce для URL-адреса клиента, т.е. customer_server / your_app? - person abmv; 14.05.2009
comment
Быстрый поиск в Google можно найти в этом блоге: codedstyle.com/ подписание и повторное подписание манифестов в клике один раз Казалось, что здесь подробно рассказывается о подписании и отказе от манифестов ClickOnce. Пользовательский шаг установки был просто dll dotNet, запущенным Installshield. Что касается второго вопроса, да, часть шага установки заключалась в создании всех специфичных для клиента частей, необходимых для ClickOnce и конфигурации приложений. - person David H; 15.05.2009

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

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

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

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

person mmx    schedule 11.05.2009