2010-11-10 5 views
0

Я использую класс ShDocVW.InternetExplorer, чтобы создать новый объект интернет-исследователя и сделать некоторые наполнения формы (для некоторых работ с sharepoint). Он отлично работает на моей собственной машине, которая имеет ОС Windows 7 в качестве ОС. Но когда я развернул то же самое на машине Windows Server 2003, он не всплывает окно Internet Explorer. Когда я проверяю Диспетчер задач, я мог видеть новый процесс iexplore, но с идентификатором сеанса = 0 (но идентификатор сеанса = 1 в Windows 7). Итак, я вижу, что это связано с изоляцией сеанса IIS. Итак, можно ли присвоить экземпляр ShDocVW.InternetExplorer виду нового System.Diagnostics.Process и выполнить эту задачу? Или мы можем запустить новый экземпляр ShDocVW.InternetExplorer с идентификатором сеанса = 1?Проблема изоляции сеанса IIS

Заранее благодарим.

+0

Зачем вам нужно запускать IE, чтобы заполнить форму? Почему бы вам просто не программировать значения? –

+0

Поскольку мне нужно найти статус возвращенной веб-страницы после заполнения формы ... что делается путем анализа методом DocumentCompleted в 'shDocVw.internetexplorer' – Asanka

ответ

0

Yap ... Я получил ответ на проблему. В IIS мы не можем запускать процессы с использованием Shell Execution с настройками по умолчанию ... Если нам нужно это сделать, необходимо установить два обходных пути, которые могут быть установлены от here. И, кстати, спасибо за то, что вы, ребята, за вклад и поддержку, которая помогает мне разобраться в этом. ура ...

0

Я не очень понимаю, что вы делаете, но если приложение, которое запускает процесс ShDocVW.InternetExplorer, является приложением ASP.NET, вы не увидите окно, потому что IIS работает как служба Windows и как таковой Службы Windows используют другой «рабочий стол», чем тот, на котором вы вошли в систему. Таким образом, вы никогда не увидите запуск приложений Windows и Windows.

Я думаю, что вам нужно создать графические приложения, которые создадут окно вашего проводника.

+0

Но я хочу, чтобы явился новый экземпляр Internet Explorer, когда я щелкните элемент управления на странице aspx. – Asanka

+0

На сервере или на клиенте? Если код, создающий экземпляр ShDocW, является кодом на стороне сервера, то вы создаете его в пространстве процесса серверного процесса, который является IIS, и который, как я уже объяснял ранее, является службой Windows, и поэтому вы никогда не увидите этот экземпляр IE –

0

В основном проблема заключается в том, что вы пытаетесь что-то сделать с помощью кода, а так как это будет работать на сервере, вы увидите процесс, порождаемый на сервере ... И НЕ на клиенте, как вы предполагаете. Он работает с вашей машиной dev, так как вы использовали FileSystem для своего проекта, а страницы вашего проекта обслуживаются cassini - сервером веб-разработки, который запускается на вашей собственной машине.

Неправильный подход к заполнению формы. Вы должны использовать запрос POST и прочитать значения на сервере для выполнения необходимой обработки данных, которые были опубликованы.

Смежные вопросы