У меня есть простая Служба Отдыха WCF с одним методом.Интерфейс определен как:
[ServiceContract]
public interface IHelloRest
{
[OperationContract]
[WebGet(UriTemplate = "json/hello/{name}", ResponseFormat = WebMessageFormat.Json)]
string Hello(string name);
}
Реализация определяется как:
public string Hello(string name)
{
return string.Format("Hello {0}. You called my Hello method", name);
}
Я развернул эту службу на IIS 7, работающем в Windows Server 2008, и вот шаги, которые я сделал длядобавить службу:
- Я запустил IIS Manager
- Я щелкнул правой кнопкой мыши на сайтах и выбрал Добавить веб-сайт ...
- Я поставил «Тест» для сайтаИмя
- Для пула приложений я выбрал ASP.NE v4.0
- В качестве физического пути я поместил корневую папку своей службы.
- Для привязки япоставил http, я оставил IP-адрес неназначенным и оставил порт на 80.
- Я не дал имя хоста
- Я немедленно покинул Start Web Site.
- Iнажал Ok и затем перешел на мой сайт.
После выполнения описанных выше шагов я столкнулся с несколькими проблемами:
Когда я выбираю http://localhost/HelloRestService.svc/json/hello/xaisoft, itспрашивает меня, хочу ли я скачать файл.Если я скачаю его и открою, он содержит ответ в формате json.На моей локальной машине, когда я размещал это в IIS, он работал нормально, но на этой удаленной машине он только спрашивает меня, хочу ли я загрузить файл.
Другая проблема заключается в том, что я не хочухост должен быть localhost, я хочу что-то вроде demo.rest.com, поэтому я бы выбрал http://demo.rest.com/json/hello/xaisoft,, но если я изменил хост на demo.rest.com и попытался просмотреть сервис сейчас, он попытаетсяперейдите по адресу:
http://demo.rest.com/HelloRestService.svc,, но говорится, что Internet Explorer не может отобразить веб-страницу.