Программное обновление VSTO Word Addin в IIS7.5 - PullRequest
2 голосов
/ 09 ноября 2011

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

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

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

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

Примечание. В папке IIS установлены следующие типы MIME:

.Application применение / X-MS-приложений

.manifest применение / X-MS-манифест

.deploy Применение / октет-поток

.msu приложения / октет-поток

.msp приложения / октет-поток

.exe приложения / октет-поток

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

ОК. Я посмотрел на Fiddler, и он вернулся с размером тела -1:

enter image description here

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

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

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 Ответ

2 голосов
/ 15 ноября 2011

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

Тогда:

  • Звонить изнутри словом (которое не работает)
  • Звонить вручную (работает)

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

...