Afzaal Ahmad Zeeshan
Воспользуйся здравым смыслом и скажи мне, где этот файл?
string filepath = Server.MapPath("~/NewFolder1/Test.msi");
Доступен ли он локально? Нет. Он присутствует на сервере и в коде,
Process.Start()
будет выполняться и на сервере. Клиент в этом случае едва ли является триггером, и любое действие на стороне сервера ничего ему не скажет, и, как уже упоминалось в решении 1, администраторы также не позволят вам выполнить установщик на своей машине — выдав запрос.
Цитата:
Я пытаюсь установить файл. exe из веб-приложения. когда я запускаю приложение локально(с сервера разработки asp), оно устанавливается правильно.
Потому что в этот момент он будет доступен на той же клиентской машине, и все пойдет хорошо, так как у вас есть права администратора, и вы знаете, где находится файл. Вот почему он работает правильно.
Цитата:
Но когда я размещался на IIS, он не работал.
Нет, приложение уже было размещено с помощью IIS (как еще вы могли бы запустить ASP.NET заявление?) разница лишь в том, что теперь ваше приложение также полагается на права, предоставляемые хостинг-провайдерами.
Никогда не устанавливайте приложение, используя HTTP-запрос, даже если вы знаете, что там есть. Большинство поставщиков услуг хостинга сочтут это вредоносным приложением и немедленно прекратят процесс или, что еще хуже, расторгнут контракт или подписку. Решение заключается в том, что вы должны связаться с администраторами или посмотреть дополнения, представленные в их панели управления, и выбрать один из них оттуда. Они будут довольны этим, и ваши пользователи тоже получат эти услуги.
Afzaal Ahmad Zeeshan
Ну а браузер не позволит вам ничего устанавливать на клиентскую машину. Что вы можете сделать, так это загрузить установщик и попросить пользователя вручную запустить эту установку. Во время этого MSI должен зарегистрироваться как обработчик элементов управления ActiveX, и ваше приложение начнет работать.
Браузер не позволит вам вносить изменения ни в что на устройстве. Кроме того, серверный код остается на стороне сервера и не имеет ничего общего с клиентским.