Шаблон службы отдыха WCF 40 на IIS 7.5 - PullRequest
1 голос
/ 23 августа 2010

Я пытаюсь получить шаблон службы WCF Rest Service 40 (CS), который является онлайн-шаблоном в VS 2010, для развертывания в IIS 7.5 на Win Server 2008 R2. Мы вообще не меняли шаблон и пытаемся заставить этот вызов работать:

public class Service1
{
    // TODO: Implement the collection resource that will contain the SampleItem instances

    [WebGet(UriTemplate = "")]
    public List<SampleItem> GetCollection()
    {
        // TODO: Replace the current implementation to return a collection of SampleItem instances
        return new List<SampleItem>() { new SampleItem() { Id = 1, StringValue = "Hello" } };
    } ....

Мы пробовали:

  • создание файла .svc вручную, так как у этого шаблона его нет. выглядит так: <%@ServiceHost language=c# Debug="true" Service="WcfRestService2.Service1"%>
  • публикация в качестве веб-сайта и добавление его в качестве веб-сайта в IIS.
  • мы установили .net framework 4.0 на IIS, и это работает.
  • добавление некоторого материала для веб-конфигурации, чтобы попытаться получить конечные точки из Global.asax.
  • куча других вещей ...

Я тяну волосы за это, и извините, я не могу более точно сказать, что именно происходит. Проблема, которую мы получаем, заключается в том, что сервисные вызовы, такие как http://localhost/Service1, не могут быть найдены через IIS, но они отлично работают в VS.

Вот файл веб-сервиса:

как вставить XML? http://www.nitricburnstudios.com/Web.config

Ответы [ 2 ]

2 голосов
/ 23 августа 2010

После большого разочарования, наконец, выяснили, как заставить это работать.

Необходимо включить HTTP-перенаправление в IIS.

Это можно сделать, набрав

  1. Панель управления -> Программы и компоненты
  2. Включение или отключение функций Windos
  3. Под ролями добавьте веб-сервер -> общие функции http -> роль перенаправления http

Это было как бы перечислено здесь: http://blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable-not-working-with-iis.aspx

0 голосов
/ 23 августа 2010

По умолчанию, когда вы переключаетесь на публикацию в IIS, он делает это для vdir вместо корня веб-сайта, поэтому я предполагаю, что вам нужно проверить vdir, на который он устанавливает (свойства проекта, web) и изменить URL-адрес. вы пытаетесь получить доступ к http://localhost/WcfRestService1/Service1 (или какому-либо другому).

Когда я создаю проект из шаблона, переключаюсь на публикацию IIS, нажимаю F5, а затем нажимаю этот URL, я получаю ожидаемый результат просто отлично:

<ArrayOfSampleItem xmlns="http://schemas.datacontract.org/2004/07/WcfRestService1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <SampleItem>
    <Id>1</Id> 
    <StringValue>Hello</StringValue> 
  </SampleItem>
</ArrayOfSampleItem>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...