Вызов exe на сервер с asp.net - PullRequest
0 голосов
/ 30 мая 2011

хотите запустить exe из asp.net на моем сервере, это возможно?

Я использую этот метод:

    System.Diagnostics.Process process1 = new System.Diagnostics.Process();
    // Set the directory where the file resides

    process1.StartInfo.WorkingDirectory = @"D:\dev\Analyzer\bin\Release";
    // Set the filename name of the file you want to open

    process1.StartInfo.FileName = @"D:\dev\Analyzer\bin\Release\Analyzer.exe";
    process1.StartInfo.Arguments = "123";
    // Start the process

    process1.Start();

это работает, когда я отлаживаю его, но когда я помещаю свой сайт на localhost, у меня есть исключение:

Ошибка входа для пользователя 'IIS APPPOOL \ dq'

где dq - имя моего сайта.

Stack:

System.Data.SqlClient.SqlException (0x80131904): Ошибка входа для пользователя «IIS APPPOOL \ dq». в System.Data.SqlClient.SqlInternalConnection.OnError (исключение SqlException, логическое breakConnection) в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning () в System.Data.SqlClient.TdsParser.Run (runSlayedSlayerShormSlayerSlayerSlayerSlayerSlayerSlayerSlayerShl_SlaySlayerShl_S_S_S_S_S_W_S_S_S_S_S_S___W_S___________R_S_S_M_S_S____________R__M_2_2_2_2__M___C_C__C_C__C___П_______________КАНАМ (исключение SqlException, логическое прерывание_соединения) в System.Data.SqlClient.SqlInternalConnection.OnError () Наверх SqlClient.SqlInternalConnectionTds. tions, String newPassword, Boolean (redirectedUserInstance) в System.Data.SqlClient.SqlInternalConnectionTds..ctor (идентификатор DbConnectionPoolIdentity, SqlConnectionString connectionOptions, объект providerInfo, строка String newPassword, SqlConnection.clConject_Conject_Conject_DirectoryConject_Directory_Conject_Exject_Directory_Exject_Exject_Exject_Exject_Exject_Exject_Directory_Directory_Exservice_Cоздание_выпускаемых_каталогов параметры, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) в System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection (DbConnection owningConnection, пул DbConnectionPool, DbConnectionOptions параметры) в объекте. Объектная точка. ProviderBase.DbConnectionPool.UserCreateRequest (DbConnection owningObject) в System.Data.ProviderBase.DbConnectionPool.GetConnection (DbConnection owningObject) в System.Data.ProviderBase.DbConnectionFactory.GetConnection e.DbConnectionClosed.OpenConnection (DbConnection externalConnection, DbConnectionFactory connectionFactory) в System.Data.SqlClient.SqlConnection.Open () в System.Data.Linq.SqlClient.SqlConnectionManager.UseConnection (IClqlInSource.IQlConnect). .get_IsSqlCe () в System.Data.Linq.SqlClient.SqlProvider.InitializeProviderMode () в System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Lecute (запрос на выражение) в системе. .DataQuery`1.System.Collections.Generic.IEnumerable.GetEnumerator () в Analyzer.Program.Main (String [] args) в D: \ dev \ Analyzer \ Program.cs: строка 59

.

Ответы [ 2 ]

2 голосов
/ 30 мая 2011

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

Если это так, вам нужно либо запустить процесс с UserName и Password для учетной записи с достаточными правами для запуска исполняемого файла (и получить доступ к каталогу, в котором он находится), либо настроить пул приложений с таким аккаунтом.


Обновление:

Трассировка стека указывает на неверный запрос LINQ, а не Process.Start. Что именно является исключением? Я не могу отличить от следа.

На какую строчку это наносится?


Обновление 2:

Проверьте строки подключения и SQL Server - учетной записи сайта не удается войти в SQL Server. Это абсолютно не связано с синтаксисом Process.Start или LINQ.

Вы установили правильный пароль? Если вы используете интегрированную защиту (SSPI=true), гарантировали ли вы, что на SQL Server включен этот логин?

1 голос
/ 05 августа 2015

Такой подход не рекомендуется вообще. На сервере ваш сайт ASP.NET также работает как процесс. Запуск другого процесса потребует дополнительных разрешений. Рабочий процесс пытается запустить analyzer.exe с учетной записью собственного пользователя (IIS APPPOOL \ dq) и в нем происходит сбой. Вам потребуется запустить рабочий процесс с другой учетной записью, у которой будет достаточно прав для запуска другого исполняемого файла.

Кстати, это откроет вашу поверхность для угроз. Совсем не рекомендуется.

Спасибо Gaurav

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...