Назад | Перейти на главную страницу

IIS возвращает простой запрещенный ответ. Нет кода HTTP

Я запускаю приложение ServiceStack на IIS. Мои обычные сервисы работают нормально и проблем с разрешениями не было.

Мой новый проект предполагает предоставление сгенерированных PDF-файлов. Я дал IIS_IUSRS разрешения на чтение и запись в каталог Temp в каталоге моего приложения. Я также разрешаю подключения к этому каталогу без SSL. Когда я просматриваю файл, который должен автоматически обслуживаться ServiceStack (например, http://ryublalblah.com/Temp/201310171723337631.pdf ) Получаю вот что:

Forbidden


Request.HttpMethod: GET
Request.PathInfo: 
Request.QueryString: 
Request.RawUrl: /ryublalblah/Temp/201310171723337631.pdf
App.IsIntegratedPipeline: True
App.WebHostPhysicalPath: C:\inetpub\ryublalblah
App.WebHostRootFileNames: [global.asax,global.asax.cs,web.config,bin,temp]

Теперь это не похоже на сообщение об ошибке ServiceStack, больше похоже на IIS, но я не уверен, как разобраться в этом. Настройки авторизации - Разрешить все.

У меня была такая же проблема с ServiceStack 3.9.70. Я создал новый проект, размещенный в корне приложения IIS. Оказывается, проблема была вызвана следующей строкой в AppHost конфигурация

config.ServiceStackHandlerFactoryPath = "";  // Results in forbidden

Я скопировал его из другого проекта, в котором ServiceStack размещался во вложенной папке:

config.ServiceStackHandlerFactoryPath = "api";  // subfolder: WORKS
config.ServiceStackHandlerFactoryPath = null;   // root: WORKS