#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 (который не работает)
- Выполняйте вызовы вручную (что работает)
Сравните пакеты запросов и ответов из этих вызовов, чтобы выявить различия