System.Management.Automation.Remoting.PSRemotingTransportException: доступ запрещен.

1

Я использую Exchange Server 2013. Я получаю ниже Exception при попытке запустить мой код С# в IIS.

System.Management.Automation.Remoting.PSRemotingTransportException: Connecting to remote server exchangeserver.admin.com failed with the following error message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.

Но локально [в Visual Studio] мой код работает нормально, после публикации моего кода и работы через IIS я получаю Exception.

См. Код

 var runspace = RunspaceFactory.CreateRunspace();

            runspace.Open();

            object psSessionConnection;

            // Create a powershell session for remote exchange server
            using (var powershell = PowerShell.Create())
            {
                var command = new PSCommand();
                command.AddCommand("New-PSSession");
                command.AddParameter("ConfigurationName", "Microsoft.Exchange");
                command.AddParameter("ConnectionUri", new Uri("http://ExchangeServer.admin.com/powershell/Microsoft.Exchange"));
              //  command.AddParameter("Authentication", "Kerberos");
                powershell.Commands = command;
                powershell.Runspace = runspace;

                // TODO: Handle errors
                var result = powershell.Invoke();

                Collection<ErrorRecord> errors = powershell.Streams.Error.ReadAll();
                if (errors != null || errors.Count > 0)
                {
                    foreach (ErrorRecord er in errors)
                    {
                        //log.Error(er.Exception.ToString());
                        return er.Exception.ToString();
                    }
                }

                psSessionConnection = result[0];
            }

IIS не смог получить доступ к сеансу Powershell для удаленного сервера Exchange, почему?

Поделитесь своими идеями

  • 0
    Работает ли учетная запись в Exchange с участником группы ролей?
Теги:
powershell
exchange-server
iis
exchange-server-2010

2 ответа

0

У меня была схожая проблема. Мое веб-приложение, размещенное на IIS, отлично работало. Однажды эта проблема возникла. Удаленная PowerShell с сервера IIS (просто консоль PowerShell, а не веб-приложение) отлично работала.

Я узнал (после нескольких дней работы с роли Exchange), что перезапуск пула приложений недостаточно для загрузки новых прав на идентификатор пула приложений (я изменил AD "Member of"). Это было очень запутанно во время отладки.

Когда я установил идентификатор пула приложений в качестве администратора на сервере IIS, все снова заработало. Теперь я уменьшу эти разрешения до минимума.

  • 0
    Итак, я предполагаю, что вы должны выйти из системы или завершить процесс IIS, чтобы убедиться, что вы загружаете новые права?
0

удаленные соединения с использованием powershell не разрешены по умолчанию. Серверу необходимо разрешить это явно для каждого пользователя. См.: Enable-PSRemoting

(Подсказка: кажется, что невозможно подключиться к двум доменам).

Сначала вы должны попытаться сделать удаленное соединение с помощью powershell, чтобы убедиться в отсутствии проблемы с С#:

PS D:\temp> $cerd = Get-Credential
...
PS D:\temp> $Session = New-PSSession -ConfigurationName Microsoft.Exchange 
-ConnectionUri http://ExchangeServer.admin.com/PowerShell/ -Authentication Kerberos -Credential 
$cerd

PS D:\temp> Import-PSSession $Session
.....
PS D:\temp> Get-TransportAgent

Ещё вопросы

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