ASP .NET On_Load метод не выполняется

1

Я работаю над kludge, который работает локально, но не после того, как я развожу его на наш сервер.

У меня есть веб-страница, которая открывается, запускает EXE а затем закрывает веб-страницу. Локально это работает, но после публикации на сервере EXE не запускается. Я подтвердил, что путь к файлу работает с сервера.

Код моей веб-страницы:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="EmailSignature_EXEC.aspx.cs" Inherits="_Default" %>

<html>
<head>
    <title></title>
<script>
function loaded()
{
    window.setTimeout(CloseMe, 500);
}

function CloseMe() 
{
    window.open('', '_self').close();
}
</script>
<script type="text/javascript">
</script>
</head>
<body onLoad="loaded()">
Hello!
    \\\\cmbfs02\\Software\\web\\EmailSignature_WPF\\EmailSignature_WPF.exe
</body>
</html>

Код С#:

using System.Diagnostics;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load()
    {
        var applicationPath = "\\\\cmbfs02\\Software\\web\\EmailSignature_WPF\\EmailSignature_WPF.exe";
        Process.Start(applicationPath);
        this.ClientScript.RegisterClientScriptBlock(this.GetType(), "Close", "window.close()", true);
    }
}

Когда я просматриваю мою страницу в IIS я вижу, что страница отображается и закрывается после Timeout но приложение не запускается. Если я EXE путь EXE в проводник Windows, приложение запустится, но это не из метода. Любая помощь оценивается

  • 0
    Имеет ли учетная запись, под которой IIS работает пул приложений, права на доступ и выполнение файла?
  • 0
    Я только что обновил пул приложений, чтобы он работал как я (администратор), а не как учетная запись службы. Получу ли я какое-либо сообщение о сбое? Я не получаю никаких отзывов о том, что метод даже был запущен, хотя, опять же, локально он выполняется, как и ожидалось, на Page_Load
Показать ещё 3 комментария
Теги:
pageload

1 ответ

1

Похоже, вы пытаетесь запустить UI exe на клиенте, но то, что вы на самом деле делаете, выполняется на веб-сервере. Если это правильно, то в принципе то, что вы пытаетесь сделать, просто... не собирается работать. Игнорируя тот факт, что реализация должна быть совершенно другой, браузеры явно разработаны для того, чтобы не запускать произвольные исполняемые файлы с веб-серверов - плюс, конечно, это будет работать только на некоторых ОС - предположительно в этом случае окна.

Несколько лет назад я мог бы сказать "заглянуть в ClickOnce для этого", но я не знаю, поддерживается ли эта опция или рекомендуется.

  • 0
    Я понимаю, что вы имеете в виду, что браузеры предотвращают это, но я переписываю старое приложение на VB, которое есть в C #. Причина появления веб-браузера заключается в том, чтобы имитировать веб-приложение и избегать окна «Запуск / Отмена» при запуске EXE. Во-первых, причина неиспользования веб-приложения заключается в том, что это приложение генерирует файлы подписи Outlook, а библиотека WordInterop COM не будет работать при запуске на сервере (веб-приложение).
  • 0
    @ грубость, которая ничего не меняет; а: браузер не заботится о ваших мотивах, и б: браузер даже не видит этого сейчас - все здесь происходит на сервере ; все, что видит браузер, это кусочек html, который закрывается сразу после загрузки - он не видит Process.Start - что происходит на сервере
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню