Программное обновление надстройки VSTO Word в IIS7.5

#iis-7 #vsto #clickonce

#iis-7 #vsto #clickonce

Вопрос:

Недавно мы перешли на новый веб-сервер (с IIS6 на IIS7.5), и у меня возникли некоторые проблемы с обновлением нашей надстройки VSTO word.

Наше приложение проверяет наличие обновлений вручную при входе в систему, и если была найдена более новая версия, обновления, подобные этому (дайте мне знать, если есть лучший способ сделать это — я пробовал ApplicationDeployment.Update() , но с ним тоже не повезло!):

 WebBrowser browser = new WebBrowser();
browser.Visible = false;
Uri setupLocation = new Uri("https://updatelocation.com/setup.exe");
browser.Url = setupLocation;
  

Это использовалось для запуска программы установки и обновления приложения, и когда пользователь перезапускал word, у них устанавливалась новая версия. После перемещения сервера обновление больше не происходит. Исключения не генерируются. Переход по URL запускает программу обновления, как и ожидалось. Что мне нужно изменить, чтобы это заработало?

Обратите внимание, что у меня настроены следующие типы MIME в папке в IIS:

.application приложение / x-ms-application

.manifest приложение /x-ms-manifest

.развертывание приложения / octet-stream

.msu application / octet-stream

.msp application / octet-stream

.exe приложение / octet-stream

Редактировать

Хорошо, я заглянул в fiddler и обнаружил, что он возвращает размер тела, равный -1:

введите описание изображения здесь

Если я введу тот же URL-адрес в IE, вы увидите, что setup.exe запускается без проблем.

Это то, что fiddler отображает в необработанном виде при доступе из word:

 HTTP/1.1 200 OK
Content-Type: application/octet-stream
Last-Modified: Tue, 27 Sep 2011 15:07:42 GMT
Accept-Ranges: bytes
ETag: "9bd0c334277dcc1:0"
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Mon, 14 Nov 2011 07:42:18 GMT
Content-Length: 735608

MZ��������������������@������������������������������������������   �!�L�!This program cannot be run in DOS mode. $�������

*** FIDDLER: RawDisplay truncated at 128 characters. Right-click to disable truncation. ***
  

Комментарии:

1. Вы пробовали такой инструмент, как (например) fiddler2, чтобы увидеть, какой http-трафик фактически создается? Выполняет ли клиент вызов сервера? Что на самом деле возвращает сервер?

2. @Eddy Я даже не думал использовать fiddler для мониторинга трафика добавления — хорошая идея! Я попробую, когда вернусь к работе в понедельник. Спасибо

3. @Eddy Я просмотрел fiddler и обновил свой ответ выше. У вас есть какие-либо дополнительные предложения?

4. Размер основного текста -1 вместе с зеленой стрелкой вниз перед строкой означает, что с сервера не получен результат. Похоже, что запрос отбрасывается сервером или что запрос зависает). Вы должны сравнить запросы и посмотреть, чем они отличаются. (Возможно, относящееся к делу примечание: почему у вас есть обратные косые черты вместо прямых в «https:\updatelocation.comsetup.exe » ?)

5. @Eddy Хорошо, я понял, в чем была проблема — он искал обновление в местоположении, которое было в старом домене, из-за чего произошел сбой на действующем сервере. Ваш совет Fiddler очень помог, поэтому ответьте на это, если хотите получить несколько замечаний 🙂

Ответ №1:

Вы пробовали такой инструмент, как (например) fiddler2, чтобы увидеть, какой http-трафик фактически создается? Выполняет ли клиент вызов сервера? Что на самом деле возвращает сервер?

Затем:

  • Выполняйте вызовы из word (который не работает)
  • Выполняйте вызовы вручную (что работает)

Сравните пакеты запросов и ответов из этих вызовов, чтобы выявить различия