Подтвердить что ты не робот

Powershell New-WebApplication

[Void][Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration")

New-WebApplication -Name 'testApp' -Site 'Default Web Site' -PhysicalPath c:\test -ApplicationPool DefaultAppPool 

Это содержимое test.ps1. Когда я запустил. \Test.ps1, я получаю следующую ошибку.

New-WebApplication: невозможно получить динамические параметры для Командлет. Получение COM-класса factory для компонента с CLSID {688EEEE5-6A7E-422F-B2E1-6AF00DC944A6} не удалось из-за следующего Ошибка: 80040154. В C:\code\work\users\mchevett\test.ps1: 6 char: 19 + New-WebApplication < -Name 'testApp' -Site 'Default Web Site' -PhysicalPath c:\test -ApplicationPool DefaultAppPo ol     + CategoryInfo: InvalidArgument: (:) [New-WebApplication], ParameterBindingException     + FullyQualifiedErrorId: GetDynamicParametersException, Microsoft.IIs.PowerShell.Provider.NewWebApplicationCommand

Это сообщение об ошибке не помогает мне вообще. Любые идеи, как получить лучшее сообщение об ошибке? Спасибо за чтение!

4b9b3361

Ответ 1

У меня была такая же проблема, потому что я вызывал неправильную версию PowerShell из моей программы. Я не уверен в этом, но я думаю, что когда у вас есть программа x86, она вызывает версию PowerShell x86, которая терпит неудачу.

Чтобы специально использовать 32-разрядную версию, вызовите это из своей программы:

C:\Windows\SysWoW64\WindowsPowerShell\v1.0\powershell.exe

Чтобы использовать 64-разрядную версию (в 64-разрядной ОС), вызовите ее из вашей программы:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Используя C:\Windows\SysNative\WindowsPowerShell\v1.0\powershell.exe из 32-битного процесса, вы получите 64-битную оболочку. Использование этого метода из 64-битного процесса даст вам ошибку, не найденную в файле.

Ответ 2

Изменение целевого объекта платформы на "x64" в свойствах сборки решения проекта сработало для меня:

screenshot of configuration page