Мы пытаемся создать список приложений на определенном сайте, Для этого у нас есть csv, который содержит необходимую информацию для создания сайта. Ниже приведен формат:

введите описание изображения здесь

Ниже приведен сценарий, который мы используем для создания приложения в IIS:

foreach($app in $apps){
     $appname = $app.path.TrimStart("/")
     New-WebApplication -Name $appname -Site $app.Site -PhysicalPath $app.PhysicalPath -ApplicationPool $app.applicationPool -Verbose
}

Проблема в том, что приложения, код которых хранится на каком-то сетевом пути, например \\\network\Webapps\appname, выдают следующую ошибку:

New-WebApplication : Не найден параметр, соответствующий имени параметра 'physicalPath'.

в то время как папки приложений, расположенные на том же сервере, создаются без каких-либо проблем,

Также сделал test-path \\\network\webapps\appname, результат true

.

В чем проблема и как ее решить?

fmsrv

Ответов: 3

Ответы (3)

Проблема решена, я не понял, в чем причина, обновил свой скрипт, в основном присвоил значения определенным переменным, после чего смог создать приложение.

Обновленный скрипт

foreach($app in $apps){
     $appname = $app.path.TrimStart("/")
     $appSite = $app.Site
     $appPath = $app.PhysicalPath
     $appPool = $app.applicationPool
     New-WebApplication -Name $appname -Site $appSite -PhysicalPath $appPath -ApplicationPool $appPool -Verbose
}

Спасибо

В первую очередь необходимо убедиться, что powershell имеет разрешение на доступ к серверу, соответствующему сетевому пути при создании сайта.

При использовании powershell для создания сайта, если физический путь сайта - это файл на локальном диске, можно использовать New-WebApplication, если это путь UNC, следует использовать New-Item.

При обычных обстоятельствах путь UNC не будет использоваться в качестве физического пути к основному сайту, а будет добавлен в качестве виртуального каталога. Поскольку доменное имя основного сайта указывает на локальную машину, а UNC указывает на удаленный IP-адрес, эти два пути будут конфликтовать, поскольку при создании сайта через IIS Manager произошла ошибка сервера.

$siteName = 'Default Web Site'
$virtualDirectoryName = 'Test'
$physicalPath = '\\UNC-path'

## Init
$virtualDirectoryPath = "IIS:\Sites\$siteName\$virtualDirectoryName"

## Create Virtual Directory where physicalpath is an UNC-path (New-WebVirtualDirectory 
wont do)
New-Item $virtualDirectoryPath -type VirtualDirectory -physicalPath $physicalPath

Возможно, дело в этом? Эта ошибка звучит так, как будто это проблема с командой, а не с данными, которые вы ей передаете.

https://social.msdn.microsoft.com/Forums/en-US/3e0cb076-6ad4-4b03-bb59-c912174266b0/container-with-iis-cant-create-application-using-powershell-physicalpath-parameter-not-found?forum=windowscontainers

конкретно:

Вам необходимо импортировать модуль WebAdministration. Если вы находитесь в контейнере через docker exec, просто используйте:

Импортировать модуль WebAdministration

2022 WebDevInsider