2012-08-25 82 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