IIS 返回纯“禁止”响应。无 HTTP 代码

IIS 返回纯“禁止”响应。无 HTTP 代码

我在 IIS 上运行 ServiceStack 应用程序。我的常规服务运行良好,没有出现任何权限问题。

我的新项目涉及提供生成的 PDF。我授予 IIS_IUSRS 对我的应用程序目录下的 Temp 目录的读/写权限。我还允许非 SSL 连接到此目录。当我浏览到 ServiceStack 应该自动提供的文件时(例如http://ryublablah.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,但我不确定如何找到问题的根源。授权设置为全部允许。

答案1

我在使用 ServiceStack 3.9.70 时也遇到了同样的问题。我创建了一个托管在 IIS 应用程序根目录下的新项目。结果发现问题是由配置中的以下行引起AppHost

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

我从另一个 ServiceStack 托管在子文件夹中的项目中复制了它:

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

相关内容