Подтвердить что ты не робот

Как создать файл .svc?

Я создал свою первую службу WCF и протестировал ее на своем компьютере, и она работает.

Представленные файлы представляют собой интерфейс, реализацию этого интерфейса и файл app.config.

Теперь, когда пришло время разместить это на реальном сервере с IIS, мне сказали, что IIS ищет файл .svc при приеме входящих вызовов.

Вот что я нашел:

Службы WCF, размещенные в IIS, представлены в виде специальных файлов содержимого (файлы .svc) внутри приложения IIS. Эта модель аналогична тому, как страницы ASMX представлены внутри приложения IIS в виде файлов .asmx. Файл .svc содержит директиву обработки WCF (@ServiceHost), которая позволяет хостинговой инфраструктуре WCF активировать размещенные службы в ответ на входящие сообщения.

Может ли кто-нибудь объяснить мне, как я могу создать этот файл, чтобы его можно было разместить?

Спасибо!

4b9b3361

Ответ 1

То, что вам нужно иметь в виду, это то, что IIS является первым и, прежде всего, веб-сервером и хостом WCF во-вторых.

Задача веб-сервера - предоставлять данные на основе входящего запроса. Большинство этих данных являются контентом (путь запроса коррелирован непосредственно с файлом на сервере), но в случае службы WCF IIS должен знать, куда идти отсюда (таким образом, SVC файл и "директивы" для IIS должны вращаться до вашего обслуживания).

Весь файл SVC говорит, что в /x/y/z.svc у меня есть служба WCF, которая может быть намного больше, чем только серверные страницы и файлы содержимого. Поэтому, пожалуйста, разверните его, сделайте его доступным и разрешите обработку входящих соединений.

Если это была служба WCF, размещенная на ее собственном выделенном порту, это будет другая история, потому что она больше не поддерживает дополнительные запросы для /Styles/base.css в дополнение к /MyService/GetSomeObject/.

Ответ 2

Файл IIS Hosted .svc состоит из @ServiceHost директивы и атрибута Сервис.

<% @ServiceHost Service="MyNamespace.MyServiceImplementationTypeName" %>

Значение атрибута Сервис - это имя типа CLR для вашей реализации службы. Использование этой директивы в основном эквивалентно созданию хоста службы с использованием следующего кода в вашей консольной программе самостоятельного хостинга.

new ServiceHost(typeof(MyNamespace.MyServiceImplementationTypeName ));

И если ваше самодостаточное приложение использует конфигурацию WCF, такую ​​как "конечная точка", "привязка" и т.д. в app.config, вы также можете поместить это в web.config. Служба IIS-хоста использует те же элементы конфигурации и синтаксис, что и службы WCF, размещенные за пределами IIS. (За исключением того, что вы не можете контролировать адрес базы/конечной точки в обслуживающей IIS-службе.) И поместите ваш предварительно скомпилированный DLL файл в каталог приложений \bin вашего сайта IIS.

И адрес службы, размещенной в IIS, будет адресом файла .svc. (http://localhost/Application1/MyService.svc).

Пожалуйста, проверьте ниже msdn - Развертывание службы WCF, размещенной в IIS.

http://msdn.microsoft.com/en-us/library/aa751792.aspx