Почему Powershell New-WebBinding создает неверный HostHeader?
Я пытаюсь добавить привязку MSMQ для своего веб-сайта IIS, правильное связывание должно выглядеть следующим образом:
![enter image description here]()
Итак, я выполняю следующую строку в PowerShell:
New-WebBinding -Name "My Site" -Protocol net.msmq -HostHeader "localhost"
и создает следующую привязку:
![enter image description here]()
с префиксом *:80:
, поэтому мои сообщения MSMQ не получают службу WCF. Может быть, я делаю это неправильно? Как создать привязку с информацией привязки, установленной только "localhost", используя эту команду PowerShell?
Командный код можно найти здесь.
Ответы
Ответ 1
Глядя на декомпилированный код командлета, он выглядит как добавление информации IPAddress и Port в привязку, и для этого нет обходного пути.
Соответствующие разделы кода:
private string ipAddress = "*";
...
builder.Append(this.ipAddress);
...
builder.Append(":" + this.sitePort.ToString(CultureInfo.InvariantCulture) + ":");
Но вы можете сделать то, что действительно делает командлет (ниже кода из командлета):
new-itemproperty -path "IIS:\sites\test" -name bindings -value @{protocol="net.msmq"; bindingInformation="localhost"}
Ответ 2
Попробуйте:
New-ItemProperty "IIS:\sites\NameOfYourSite" -name bindings -value @{protocol="net.msmq";bindingInformation="localhost"}