2012-02-16 3 views
2

У меня возникли проблемы с настройкой службы ServiceStack REST для работы с моей коробкой IIS 7.5. Он отлично работает на локальном хосте, и он отлично работает, если я развертываю его в корневом каталоге «Default Web Site» -/EmployeeSvc. У меня есть структура виртуального каталога в веб-узле по умолчанию для организационных целей (обратите внимание на пользовательский путь в web.config). Я могу успешно просматривать файл default.htm в этом месте, но когда я пытаюсь выполнить пример встроенного/привет, я получаю:Ошибка служебного пути службы ServiceStack REST

Ошибка сервера 404 - Файл или каталог не найдены. Ресурс, который вы ищете, возможно, был удален, изменилось его имя или временно недоступно.

Как я уже сказал, пример встроенного/привет работает отлично с localhost и из корневой папки iis по умолчанию по умолчанию, но не изнутри структуры каталогов. Что я делаю неправильно с маршрутом местоположения?

Заранее благодарен! Здесь web.config:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 

    <location path="Employees-NoAuth/WebServices/EmployeeSvc"> 
     <system.web> 
      <httpHandlers> 
      <add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" /> 
      </httpHandlers> 
     </system.web> 

     <!-- Required for IIS 7.0 --> 
     <system.webServer> 
      <modules runAllManagedModulesForAllRequests="true"/> 
      <validation validateIntegratedModeConfiguration="false" /> 
      <handlers> 
      <add path="*" name="ServiceStack.Factory" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" verb="*" /> 
      </handlers> 
     </system.webServer> 
    </location> 

    <system.web> 
    <customErrors mode="RemoteOnly"/> 
    <compilation debug="true" targetFramework="4.0" /> 
    </system.web> 

</configuration> 
+0

Примечание: «Ошибка сервера 404 - Файл или каталог не найден» ошибка ASP.NET, то есть ваш путь не делает его обработчик ServiceStack - это первое, что нужно решить. – mythz

+0

Я очень новичок в servicestack, но у вас есть шанс добавить дополнительную запись system.webServer в свой web.config? У меня была та же проблема с использованием стека служб по сервисам ria. Если вы дадите мне знать, и я скажу вам, что делать. – epitka

ответ

0

Я бы попробовал следующее:
1. Снимите узел доступа из web.config. Извлеките конфигурацию SS.
2. Регистр базового URL путь в своем классе, полученный из AppHostBase:

public override void Configure(Container container) 
{ 
    this.SetConfig(new EndpointHostConfig { ServiceStackHandlerFactoryPath = "base/path" }); 
}