从 IIS 上的服务堆栈提供 swf 文件时出现 403 错误
Posted
技术标签:
【中文标题】从 IIS 上的服务堆栈提供 swf 文件时出现 403 错误【英文标题】:403 Error when serving swf files from Service Stack on IIS 【发布时间】:2012-11-13 08:01:19 【问题描述】:我正在尝试从使用 Service Stack 的 Web 应用程序提供 swf 文件。请求 swf 文件时,我收到 403 响应(见下文)。从这个应用程序提供任何其他静态文件(html、css、js、xap、jpg、png 等),我没有遇到这个问题
在 Visual Studio 中进行调试以及将站点部署到 IIS 时会发生相同的行为。
有没有其他人遇到过类似的问题?
这是来自服务器的响应:
Forbidden
Request.HttpMethod: GET
Request.PathInfo:
Request.QueryString:
Request.RawUrl: /swf/plupload/plupload.flash.swf
App.IsIntegratedPipeline: False
App.WebHostPhysicalPath: C:\Users\me\Documents\GitHub\Project\src\Project.Host.Web
App.WebHostRootFileNames: [project.host.web.csproj,project.host.web.csproj.user,apphost.cs,customusersession.cs,default.html,global.asax,global.asax.cs,packages.config,plupload.flash.swf,web.config,web.debug.config,web.release.config,app_data,bin,css,img,js,logs,obj,properties,swf,xap]
App.DefaultRootFileName: default.html
【问题讨论】:
【参考方案1】:ServiceStack 包含一个白名单,因此默认情况下只提供具有众所周知扩展名的文件。您可以通过将 .swf 添加到您的 AppHost.Configure() 中来将其添加到白名单中:
SetConfig(new EndpointHostConfig
AllowFileExtensions = "swf" ,
);
【讨论】:
以上是关于从 IIS 上的服务堆栈提供 swf 文件时出现 403 错误的主要内容,如果未能解决你的问题,请参考以下文章
从同一服务器上的 MVC 调用 WCF 服务时出现 SocketException