Я пытаюсь настроить систему для сотрудников, которые будут использоваться в офисе, чтобы они могли запускать определенные программы с веб-сайта.Ошибка при попытке подключения к SQL Server из программы на удаленном компьютере
Они смогут войти в систему и перейти на страницу отчетов, нажав кнопку, чтобы запустить программу отчетов на сервере утилиты. Программа подключится к SQL Server, чтобы получить регистрационную информацию, а затем зайти на другой сайт и программно создать отчеты и загрузить их.
Если я запускаю программу как отдельную программу на сервере, она работает нормально. Я даже запускаю его как запланированную задачу на самом сервере, и он работает нормально. Только когда я пытаюсь запустить программу с веб-сайта, я получаю сообщение об ошибке программы, но оно завершается из-за необработанного исключения. Вот трассировка стека из ошибки в средстве просмотра событий.
Применение: Тенденции Reports.exe
Framework версии: v4.0.30319
Описание: Процесс был прекращен из-за необработанное исключение.
Exception Информация: System.Data.SqlClient.SqlExceptionStack: на System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal (System.Data.Common.DbConnection, System.Data.ProviderBase.DbConnectionFactory, System.Threading. Tasks.TaskCompletionSource
1<System.Data.ProviderBase.DbConnectionInternal>, System.Data.Common.DbConnectionOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(System.Data.Common.DbConnection, System.Data.ProviderBase.DbConnectionFactory, System.Threading.Tasks.TaskCompletionSource
1, System.Data.Common.DbConnectionOptions) на System.Data.SqlClient.SqlConnection.TryOpenInner (System.Threading.Tasks.TaskCompletionSource1<System.Data.ProviderBase.DbConnectionInternal>) at System.Data.SqlClient.SqlConnection.TryOpen(System.Threading.Tasks.TaskCompletionSource
1) в System.Data.SqlClient.SqlConnection.Open() в Trending_Reports.Program.Main (System.String [])
Вот код, который я использую для запуска программы.
var processToRun = new[] { @"D:\test\Trending Reports.exe" };
var connection = new ConnectionOptions();
connection.Impersonation = System.Management.ImpersonationLevel.Impersonate;
connection.Username = "Username";
connection.Password = "password";
var wmiScope = new ManagementScope(String.Format("\\\\{0}\\root\\cimv2", "Server"), connection);
wmiScope.Connect();
var wmiProcess = new ManagementClass(wmiScope, new ManagementPath("Win32_Process"), new ObjectGetOptions());
wmiProcess.InvokeMethod("Create", processToRun);
Сама программа использует многопоточность. Может ли это вызвать проблему? Или это может быть проблема пользователя, когда он не использует мой профиль пользователя на удаленном компьютере?
Да, я сделал это, и большая часть из них была уже настроена, но я все равно получаю ту же ошибку. – Marcus