404 BadRequest из-за конфигурации IIS ...
Если вы получаете сообщение об ошибке 404 BadRequest от IIS после попытки изменить заголовки хоста в IIS, это часто встречается, но есть исправление!
Исправление путем внесения изменений в конфигурацию IIS
Как WCF может поддерживать несколько привязок IIS, указанных для сайта?:
http://tinyurl.com/55q5hg
Исправление путем внесения изменений в код WCF
Кроме того, в следующей статье объясняется, как один разработчик решил эту проблему с помощью комбинации конфигурации и кода:
Ну, это было весело! Приключение в WCF, SSL и заголовках хоста
http://geekswithblogs.net/rakker/archive/2008/07/03/123562.aspx
В статье упоминаются две важные ссылки ...
Первый объясняет, как правильно установить заголовки хоста в IIS:
После работы заголовков хоста вы обнаружите, что ...
"вы не можете иметь более одного хоста
заголовок для IIS или wcf сломается "
Решение обойти это ограничение можно найти в этой статье, а также есть комментарий к статье GeeksWithBlogs.net выше, который предоставляет расширенный вариант:
Если вы все еще испытываете проблемы, сообщите нам об этом в комментариях ниже ...
Если служба не работает ...
Мой опыт работы с WCF заключается в том, что иногда он бывает очень сложным, особенно с настройкой. Если кто-то придерживается передового опыта и не делает ничего нестандартного, то подавляющее большинство проблем при развертывании является результатом неправильного файла конфигурации.
В теории (не так много на практике из-за архитектурных различий) настройка службы WCF в IIS не должна отличаться от настройки типичного виртуального каталога и соответствующего приложения для веб-приложения или веб-службы ASMX.
Поэтому я рекомендую, чтобы, если это первая служба WCF, которую вы открываете для Интернета, следуйте тому же простому подходу, который вы использовали бы при показе своего первого веб-сайта. По сути, создайте новый образец «Приложение службы WCF» (это доступно в диалоговом окне «Добавить новый проект» в разделе «Веб» C # или VB).
Как только он заработает, следуйте рекомендациям по развертыванию, чтобы переместить его в рабочую изолированную программную среду и протестировать его локально. В этой изолированной программной среде предпочтительно уже установлены некоторые веб-сайты или веб-службы, о которых известно, что они доступны из Интернета, чтобы устранить любые сомнения относительно типичных проблем конфигурации сети. Если у вас есть образец веб-службы ASMX, который уже успешно открыт в Интернете с этого сервера, это было бы лучше.
Затем попробуйте протестировать службы ASMX и WCF из веб-браузера, как локально на сервере, так и внутри других рабочих столов, а затем, наконец, извне.
Тестирование URL
Мы хотим проверить доступ к стандартным файлам SVC и ASMX из веб-браузера во всех разновидностях URL-адресов, которые доступны и актуальны. Результаты должны быть похожими, со сводной страницей об оказании услуг в окне. Разница будет в том, что сводка веб-службы ASMX, вероятно, позволит вам выполнить веб-методы в службе, если эта функция не отключена в файле web.config.
Сравнить результаты браузерной выборки следующих стилей URL-адресов ...
- http://localhost/WcfService1/Service1.svc
- http://localhost/WcfService1/Service1.asmx
- http://MachineName или MachineFQN / WcfService1 / Service1. svc
- http://MachineName или MachineFQN / WcfService1 / Service1. asmx
- http://MachineLocalIP # 1 / WcfService1 / Service1. SVC
- http://MachineLocalIP # 1 / WcfService1 / Service1. ASMX
- http://MachineLocalIP # 2 / WcfService1 / Service1. SVC
- http://MachineLocalIP # 2 / WcfService1 / Service1. ASMX
- http://ExternalIP/WcfService1/Service1.svc
- http://ExternalIP/WcfService1/Service1.asmx
Все эти тесты должны возвращать похожие результаты.
Методы тестирования сервиса
Если вам это нравится, отправляйтесь в веб-сервис ASMX и протестируйте некоторые веб-методы на наличие любого из протестированных URL-адресов в веб-браузере. Вскоре вы увидите, что мы можем тестировать веб-сервисы ASMX и другим способом ...
Далее мы протестируем веб-методы как службы WCF, так и веб-службы ASMX с помощью приложения WcfTestClient.exe , которое находится в дистрибутиве Visual Studio 2008 ( C: \ Program). Файлы \ Microsoft Visual Studio 9.0 \ Common7 \ IDE ).
Вам нужно будет добавить службы через пункт меню Файл-> Добавить службу , указав приведенный выше URL-адрес для каждого URL-адреса службы, который вы хотите проверить. Убедитесь, что вы указали имя файла SVC и ASMX. Если все хорошо, конечная точка MEX, которая активируется атрибутом «httpGetEnabled» элемента <serviceMetadata/>
в файле web.config, вернет данные, необходимые для работы утилиты, заполнив дерево инвентаризацией наши методы обслуживания, как это:
С этого момента будет полезно сослаться на следующие ресурсы:
Заключение
Если вы зайдете так далеко, то я не ожидаю каких-либо других проблем, и теперь вам следует попытаться сравнить настройки примеров со службой WCF, которую вы пытаетесь опубликовать в Интернете, и, надеюсь, различия будут очевидно.
Не забудьте относиться к службе WCF как к веб-службе ASMX во время диагностики, предполагая, что web.config, как известно, настроен правильно.
Если вы все еще не можете заставить что-либо работать, обратитесь к этому руководству за дополнительной технической консультацией:
Наконец, если ничего не помогает, просто включите службу WCF в веб-службу ASMX: