2012-08-25 47 views
4

我将如何去服务使用服务栈的静态文件?服务带有服务栈的静态文件

我想添加一个类似Routes.Add(/ app)的路由,并且当客户端为此路径发出GET时,我需要返回一个silverlight xap文件。

回答

6

ServiceStack已能够通过直接引用它们来提供静态文件。

否则,如果你想有一个服务返回一个文件下载,你可以这样做:

return new HttpResult(new FileInfo("~/app.xap"), asAttachment:true) { 
    ContentType = "application/x-silverlight-app" 
}; 

注:asAttachment将控制是否要发送HTTP Content-Disposition头。

约ServiceStack的反应更多信息在这前面的问题:ServiceStack and returning a stream

+0

谢谢,这是真的那么容易:-)我从来没有想到裁判工作的文件直接与servicestack。 – Johnny

+0

“直接引用文件”是什么意思?什么是直接从ServiceStack引用文件的例子? – Arjang

+2

@Arjang你只需像在MVC或ASP.NET中那样引用静态文件,例如如果WebRoot存在,'http:// localhost/example.html'将自动为您提供'〜/ example.html'文件。如果你是自承载服务栈(即使用HttpListener而不是ASP.NET),你需要设置你想要服务的每个静态文件的** Build Action ** **复制如果更新**,所以添加一个副本到自己的HttpListener主机可以访问的'/ bin'目录。 – mythz