Я написал веб-службу WCF на С#. Сначала я самостоятельно разместил его, а затем решил разместить его в IIS, запущенном на локальном компьютере. Хотя служба работает, есть несколько аспектов процесса развертывания, которые я не понимаю:
Во-первых, URL-адрес этой службы при размещении в IIS не соответствует тому, что я указал в моем web.config. Я указал " http://localhost:8000/MyServices/OrderService", и это было использовано, когда я сам принимал участие. Теперь, когда я развернулся в IIS, URL-адрес стал " http://localhost/MyServices/OrderService". Почему URL-адрес не получен из моего конфигурационного файла?
Во-вторых, для размещения веб-службы я создал новый веб-сайт в IIS (в дополнение к существующему веб-сайту по умолчанию). Я установил физический путь к c:\inetpub\wwwroot (не знаю, если это правильно) и оставил остальные параметры по умолчанию. Затем я скопировал папку my/bin, мой файл .svc и мой web.config в эту папку. Является ли это эквивалентом "Виртуального каталога"?
Наконец, служба не работала, пока (в IIS) я не выбрал "Преобразовать в приложение". Почему необходимо выбрать "Преобразовать в приложение"?
Может ли кто-нибудь объяснить, какая правильная процедура заключается в публикации простого веб-сервиса из Visual Studio в IIS или указать мне хорошую документацию, чтобы я мог понять процесс?
**** ИЗМЕНИТЬ ОРИГИНАЛ ***** Потратив больше времени на это, я нашел следующее:
- Когда я создаю веб-сайт в IIS, я предоставляю ему физический каталог c:\inetpub\wwwroot.... etc
- Если я затем "опубликую" из Visual Studio, все, что он делает, копирует все необходимые файлы (например, каталог /bin, файл web.config и .svc) в физический каталог веб-сайта, то есть - c:\Inetpub\Wwwroot...
Вы можете выполнить копию вручную с тем же эффектом.
- Наконец, что касается URL-адреса моей службы, которая не соответствует разделу baseAddress моего файла web.config, это было в ответ на stackoverflow ранее.
Ответ заключается в том, что baseAddress полностью игнорируется при размещении в IIS.