Согласно этому, ошибка 503: "503 Служба недоступна. Сервер в данный момент недоступен ( потому что он перегружен или отключен для обслуживания). Как правило, это временное состояние».
Но мне кажется, что это не так. У меня запущено серверное приложение веб-API, которое предоставляет метод REST. Я могу успешно вызвать его из Fiddler Composer (он получает файл и сохраняет его на диск), но ТОЛЬКО, если я использую «localhost» (IP-адрес не работает и имя хоста).
При попытке вызвать метод с моего портативного устройства Windows CE/Compact Framework (которое не может использовать «localhost», поскольку это было бы самовлюбленным и безрассудным), я могу получить либо ошибку 400 — неверный запрос с сервера, либо ошибку 503, в зависимости от того, использую ли я IP-адрес или имя хоста ПК, на котором работает приложение Web API.
С моим файлом applicationhost.config следующим образом:
<site name="HHS.Web" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\project\git\CStore\HHS.Web" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:21608:localhost" />
<binding protocol="http" bindingInformation="*:21608:192.168.125.50" />
</bindings>
</site>
... Я получаю сообщение об ошибке 400 - Bad Request, когда пытаюсь вызвать метод REST в HHS.WEB из портативного клиента, используя этот URL-адрес: http://192.168.125.50:21608/api/inventory/sendXML/duckbilled/platypus/bla
С файлом applicationhost.config следующим образом:
<site name="HHS.Web" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\project\git\CStore\HHS.Web" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:21608:localhost" />
<binding protocol="http" bindingInformation="*:21608:shannon2" />
</bindings>
</site>
...и этот uri, используя мое имя хоста: http://shannon2:21608/api/inventory/sendXML/duckbilled/platypus/bla
... Я получаю ошибку "503". Сервер работает, что можно увидеть, когда я изменяю запись в applicationhost.config и URL-адрес, который я вызываю; так почему он говорит мне, что он недоступен?
ОБНОВИТЬ
Я надеялся, что у меня был мозговой штурм, и что использование «PPP_PEER» для обозначения ПК поможет, и поэтому я изменил URL-адрес, который вызывает приложение на портативном устройстве, с этого:
http://192.168.125.50:21608/api/inventory/sendXML/duckbilled/platypus/bla
...к этому:
http://PPP_PEER:21608/api/inventory/sendXML/duckbilled/platypus/bla
... поскольку кажется, что КПК должен ссылаться на ПК, но это просто возвращает меня к ошибке «400 - Bad Request» (и точка останова в серверном приложении все еще не сработала). Если использование «PPP_PEER» — правильная идея, что еще мне нужно, чтобы заставить его работать?
ОБНОВЛЕНИЕ 2
Суть бисквита заключалась в добавлении в командную строку либо этого:
netsh http add urlacl url=http://shannon2:80/ user=everyone
...или это:
netsh http add urlacl url=http://shannon2:8080/ user=everyone
Подробнее об обновлении 5 см. здесь.