Не удается получить доступ к .svc в службе RESTFul WCF, развернутой на локальном IIS WebServer - PullRequest
3 голосов
/ 28 октября 2009

Мне нужна помощь. Я новичок в мире WCF, который недавно перешел с веб-сервисов SOAP.

Служба WCF работает хорошо, когда я запускаюсь с сервера разработки ASP.NET VS2008, т.е. в режиме отладки. Проблема возникает, когда я пытаюсь получить доступ к службе через IIS.

Я настроил веб-сайт на своем локальном веб-сервере IIS, размещенном на порте 8082 (http://localhost:8082)), и создал VirtualDirectory (1.0), который указывает на физический каталог, содержащий мой код службы WCF. сделать ASP.NET 2.0.50727. Я могу попасть на целевую страницу, а также ассортимент страниц .aspx, но когда я пытаюсь получить доступ к Service.svc, браузер никогда не попадает туда и просто простаивает.

http://localhost:8082/1.0/Service.svc  

У меня вопрос, какие настройки мне не хватает, чтобы служба работала из IIS, поскольку я уже знаю, что она работает на сервере разработки.

Я прилагаю часть моего web.config, если это поможет.

    <system.serviceModel>
    <services>
        <service name="Service1" behaviorConfiguration="Service1Behavior">
            <!-- Service Endpoints -->
            <endpoint address="" binding="wsHttpBinding" contract="IService1">
                <!-- 
          Upon deployment, the following identity element should be removed or replaced to reflect the 
          identity under which the deployed service runs.  If removed, WCF will infer an appropriate identity 
          automatically.
      -->
                <identity>
                    <dns value="localhost"/>
                </identity>
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
        </service>
    </services>
    <behaviors>
        <serviceBehaviors>
            <behavior name="Service1Behavior">
                <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
                <serviceMetadata httpGetEnabled="true"/>
                <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
                <serviceDebug includeExceptionDetailInFaults="true"/>
            </behavior>
        </serviceBehaviors>
    </behaviors>
</system.serviceModel>

Ответы [ 2 ]

1 голос
/ 28 апреля 2011

По умолчанию IIS 7.0 не настроен для услуг WCF мы собираемся настроить IIS 7.0 для запуска служб WCF я разобью всю процедуру в шаги.

http://basitblog.wordpress.com/2010/01/12/deploy-wcf-service-over-iis-7-0/

1 голос
/ 28 октября 2009

Вы говорите об услуге RESTful, но используете wsHttpBinding .... это не привязка REST - это будет "webHttpBinding".

По большей части службы WCF ARE на основе SOAP - любые привязки, кроме webHttpBinding, являются конечными точками SOAP, поэтому ваша конечная точка wsHttpBinding определенно не RESTful в любом случае , форма или форма. Вы можете общаться с ним, например, с помощью SoapUI или еще лучше - WcfTestClient в папке Visual Studio.

Однако нельзя ожидать, что вы получите от него данные в форме XML, просто перейдя по этому URL.

Марк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...