Поделиться через


Проблемы с конфигурацией сервера и клиента в развертываниях ClickOnce

Если вы используете службы IIS в Windows Server, а развертывание содержит тип файла, который Windows не распознает, например файл Microsoft Word, СЛУЖБЫ IIS откажутся передавать этот файл, и развертывание не будет выполнено.

Кроме того, некоторые веб-серверы и программное обеспечение веб-приложения, такие как ASP.NET, содержат список файлов и типов файлов, которые нельзя скачать. Например, ASP.NET предотвращает скачивание всех Web.config файлов. Эти файлы могут содержать конфиденциальную информацию, например имена пользователей и пароли.

Хотя это ограничение не должно вызывать проблем при скачивании основных файлов ClickOnce, таких как манифесты и сборки, это ограничение может препятствовать скачиванию файлов данных, включенных в приложение ClickOnce. В ASP.NET эту ошибку можно устранить, удалив обработчик, который запрещает скачивание таких файлов из диспетчера конфигураций IIS. Дополнительные сведения см. в документации по серверу IIS.

Некоторые веб-серверы могут блокировать файлы с такими расширениями, как .dll, .configи .mdf. Приложения на основе Windows обычно включают файлы с некоторыми из этих расширений. Если пользователь пытается запустить приложение ClickOnce, которое обращается к заблокированным файлам на веб-сервере, это приведет к ошибке. Вместо разблокировки всех расширений файлов ClickOnce публикует каждый файл приложения с расширением DEPLOY по умолчанию. Поэтому администратору необходимо настроить только веб-сервер для разблокировки следующих трех расширений файлов:

  • .application

  • .manifest

  • .deploy

    Однако вы можете отключить этот параметр, сняв опцию «Использовать расширение файла .deploy» в диалоговом окне Параметры публикации. В этом случае необходимо настроить веб-сервер для разблокировки всех расширений файлов, используемых в приложении.

Вам потребуется настроить .manifest, .application и .deploy, например, если вы используете IIS, где не установлена платформа .NET Framework, или если вы используете другой веб-сервер (например, Apache).

ClickOnce и протокол безопасных сокетов (SSL)

Приложение ClickOnce будет работать хорошо по протоколу SSL, за исключением случаев, когда браузер вызывает запрос о SSL-сертификате. Запрос может возникать, когда в сертификате возникает ошибка, например, когда имена сайтов не совпадают или срок действия сертификата истек. Чтобы настроить работу ClickOnce через SSL-подключение, убедитесь, что сертификат актуален, и что данные сертификата соответствуют данным сайта.

Проверка подлинности ClickOnce и прокси-сервера

ClickOnce обеспечивает поддержку проверки подлинности встроенного прокси-сервера Windows, начиная с .NET Framework 3.5. Конкретные директивы machine.config не требуются. ClickOnce не поддерживает другие протоколы проверки подлинности, такие как "Базовый" или "Дайджест".

Вы также можете применить исправление к .NET Framework 2.0, чтобы включить эту функцию. Дополнительные сведения см. в статье FIX: сообщение об ошибке при попытке установить приложение ClickOnce, созданное в .NET Framework 2.0, на клиентском компьютере, настроенном для использования прокси-сервера: "Требуется проверка подлинности прокси-сервера".

Для получения дополнительных сведений см. <элемент defaultProxy> (параметры сети).

Совместимость с ClickOnce и веб-браузером

В настоящее время установка ClickOnce запускается только в том случае, если URL-адрес манифеста развертывания открыт с помощью браузера. Развертывание, URL-адрес которого запускается из другого приложения, например Microsoft Office Outlook, успешно запускается только в том случае, если Internet Explorer установлен в качестве веб-браузера по умолчанию.

Замечание

Mozilla Firefox поддерживается, если поставщик развертывания не пуст или установлено расширение Microsoft .NET Framework Assistant. Это расширение входит в состав .NET Framework 3.5 SP1. Для поддержки XBAP подключаемый модуль NPWPF активируется при необходимости.

Активация приложений ClickOnce с помощью сценариев браузера

Если вы разработали пользовательскую веб-страницу, которая запускает приложение ClickOnce с помощью активного скрипта, вы можете обнаружить, что приложение не запустится на некоторых компьютерах. Браузер содержит параметр автоматический запрос на скачивание файлов, который влияет на это поведение. Обычно этот параметр браузера указан в категории "Загрузки " и включен по умолчанию. Если этот параметр отключен, любая попытка активировать приложение ClickOnce программным способом (например, присвоив его URL-адрес свойству document.location ), будет заблокирована. В этом случае пользователи могут запускать приложения только через скачивание, инициированное пользователем, например, щелкнув гиперссылку, установленную по URL-адресу приложения.

Дополнительные проблемы с конфигурацией сервера

Необходимые разрешения администратора

При публикации с помощью ПРОТОКОЛА HTTP у вас должны быть разрешения администратора на целевом сервере. Для служб IIS требуется этот уровень разрешений. Если вы не публикуете с использованием HTTP, вам потребуется только разрешение на запись по целевому пути.

Проблемы с проверкой подлинности сервера

При публикации на удаленном сервере с отключенным анонимным доступом вы получите следующее предупреждение:

"The files could not be downloaded from http://<remoteserver>/<myapplication>/.  The remote server returned an error: (401) Unauthorized."

Замечание

Вы можете включить проверку подлинности NTLM (NT challenge-response), если сайт запрашивает учетные данные, отличные от ваших учетных данных по умолчанию, и в диалоговом окне безопасности вы нажимаете кнопку "ОК", если вас спросили, хотите ли вы сохранить предоставленные учетные данные для будущих сеансов. Однако это решение не будет работать для базовой проверки подлинности.

Использование сторонних веб-серверов

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

Расширение имени файла Тип контента
.application application/x-ms-application
.manifest application/x-ms-manifest
.deploy application/octet-stream
.msu application/octet-stream
.msp application/octet-stream

ClickOnce и сопоставленные диски

Если вы используете Visual Studio для публикации приложения ClickOnce, вы не можете указать сопоставленный диск в качестве расположения установки. Однако можно изменить приложение ClickOnce для установки с сопоставленного диска с помощью генератора манифеста и редактора (Mage.exe и MageUI.exe). Дополнительные сведения см. в статьях Mage.exe (средство создания манифеста и редактирования) иMageUI.exe (средство создания и редактирования манифестов, графический клиент).

Протокол FTP не поддерживается для установки приложений

ClickOnce поддерживает установку приложений с любого веб-сервера ИЛИ файлового сервера HTTP 1.1. ПРОТОКОЛ FTP, протокол передачи файлов, не поддерживается для установки приложений. Вы можете использовать FTP только для публикации приложений. В следующей таблице приведены следующие различия:

Тип URL-адреса Description
ftp:// Приложение ClickOnce можно опубликовать с помощью этого протокола.
http:// Приложение ClickOnce можно установить с помощью этого протокола.
https:// Приложение ClickOnce можно установить с помощью этого протокола.
файл:// Приложение ClickOnce можно установить с помощью этого протокола.

Брандмауэр Windows

По умолчанию Windows включает брандмауэр Windows. Если вы разрабатываете приложение на компьютере с установленным Windows, вы по-прежнему сможете публиковать и запускать приложения ClickOnce с локального сервера, на котором запущены службы IIS. Однако вы не можете получить доступ к серверу, на котором запущены службы IIS с другого компьютера, если вы не открываете брандмауэр Windows. Инструкции по управлению брандмауэром Windows см. в справке Windows.

Windows Server: включение расширений сервера FrontPage

Расширения сервера FrontPage от Корпорации Майкрософт требуются для публикации приложений на веб-сервере Windows, использующего ПРОТОКОЛ HTTP.

По умолчанию Windows Server не устанавливает расширения сервера FrontPage. Если вы хотите использовать Visual Studio для публикации на веб-сервере Windows Server, использующего HTTP с расширениями сервера FrontPage, сначала необходимо установить расширения сервера FrontPage. Вы можете выполнить установку с помощью средства администрирования сервера в Windows Server.

Windows Server: заблокированные типы контента

Службы IIS в Windows Server 2003 блокируют все типы файлов, кроме определенных известных типов содержимого (например, .htm, .html, .txt и т. д.). Чтобы включить развертывание приложений ClickOnce с помощью этого сервера, необходимо изменить параметры IIS, чтобы разрешить скачивание файлов типа .application, .manifest и других пользовательских типов файлов, используемых приложением.

При развертывании с помощью сервера IIS запустите inetmgr.exe и добавьте новые типы файлов для веб-страницы по умолчанию:

  • Для расширений . application и .manifest тип MIME должен быть "application/x-ms-application". Для других типов файлов тип MIME должен быть "application/octet-stream".

  • Если вы создаете тип MIME с расширением< "em>" и типом MIME "application/octet-stream", он позволит загружать файлы разблокированного типа файла. (Однако заблокированные типы файлов, такие как *.aspx и *.asmx , нельзя скачать.)

    Инструкции по настройке типов MIME в Windows Server см. в статье "Добавление типа MIME" на веб-сайт или приложение.

Сопоставления типов контента

При публикации по протоколу HTTP тип контента (также известный как тип MIME) для файла приложения должен быть "application/x-ms-application". Если на сервере установлен .NET Framework 2.0, это будет автоматически установлено. Если это не установлено, необходимо создать сопоставление типов MIME для vroot приложения ClickOnce (или всего сервера).

При развертывании с помощью сервера IIS запустите inetmgr.exe и добавьте новый тип контента application/x-ms-application для расширения .application .

Проблемы с сжатием HTTP

С помощью ClickOnce можно скачать файлы, использующие сжатие HTTP, технологию веб-сервера, которая использует алгоритм GZIP для сжатия потока данных перед отправкой потока клиенту. Клиент (в данном случае ClickOnce) распаковывает поток перед чтением файлов.

Если вы используете IIS, можно легко включить сжатие HTTP. Однако при включении сжатия HTTP он включен только для определенных типов файлов, а именно HTML и текстовых файлов. Чтобы включить сжатие сборок (.dll), XML (.xml), манифесты развертывания (.application) и манифесты приложений (.manifest), необходимо добавить эти типы файлов в список типов для сжатия IIS. Пока вы не добавите типы файлов в развертывание, будут сжаты только текстовые и HTML-файлы.

Подробные инструкции для IIS см. в разделе "Указание дополнительных типов документов для сжатия HTTP".