从 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

尝试从 C# 服务查询 IIS 时出现异常

在 IIS 中访问 .svc 文件时出现 HTTP 404

在 iis 7.0 上运行 .net framework 4.0 网站时出现问题

添加 swf 游戏文件时出现 PHP 错误

调试 IIS Express Web 服务/silverlight 应用程序时出现安全错误