Когда я вызываю метод REST, он спрашивает меня, хочу ли я загрузить файл - PullRequest
0 голосов
/ 30 сентября 2010

У меня есть простая Служба Отдыха 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 не может отобразить веб-страницу.

1 Ответ

4 голосов
/ 30 сентября 2010

Это нормальное, ожидаемое по умолчанию поведение - IIS и IE не знают, как обращаться с результатом JSON, поэтому лучше всего предложить загрузить файл, чтобы вы могли сохранить и просмотреть его.

JSON не предназначен и предназначен для непосредственного вызова в браузере - если вы хотите отображать материалы напрямую, просматривая их, используйте XML.

JSON предназначен для отправки обратно в ваше клиентское приложение (веб-приложение и т. Д.) В виде небольшой полезной нагрузки (например, «загружен» в виде порции данных), а затем интерпретируется Javascript и превращается в разметку HTML (обычно).

Так что я не думаю, что здесь что-то не так - если что-то странное, то это тот факт, что в вашей локальной системе он работает "просто отлично" (что это вообще означает на самом деле ?? Что происходит ??)

...