Я запускаю приложение 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