2013-02-18 2 views
5

Я нахожусь в Mono 3.x, на Mac OSX, и я пытаюсь вернуть статический файл с ServiceStack. Код (и должен быть, согласно другим ответам) очень простым:Ошибка записи заголовков при возврате FileInfo HttpResult

public class AirPlayService : Service 
{ 
    public object Get(Movie request) 
    { 
     var fileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Movies", request.Name); 

     var file = new FileInfo(fileName); 
     return new HttpResult(file, asAttachment:false); 
    } 
} 

Объект Movie - это простой DTO.
Когда мой Get() вызывается я вижу следующее сообщение об ошибке в моем окне терминала:

ERROR: Error occured while Processing Request: [IOException] Write failure, Exception: Write failure INFO: Failed to write error to response: {0}, Exception: Cannot be changed after headers are sent. ERROR: Error in HttpListenerResponseWrapper: Write failure, Exception: Write failure

ServiceStack является версия 3.9.35; Mono JIT-компилятор версии 3.0.3 (master/39c48d5 Вт 8 янв 12:12:24 EST 2013); .NET 4.5.

Что я делаю неправильно?

+0

Кажется быть решена с помощью последней версии MonoDevelop (теперь с помощью Xamarin Studio), и ServiceStack (3.9.38) , – Richard

+1

Можете ли вы добавить решение, которое вы нашли в качестве ответа? Это поможет будущим пользователям быстрее найти ответ, и вы получите больше репутации. –

+0

@Brent большое редактирование, охота за значками? – CodeCaster

ответ

1

я была такая же проблема на компьютере моего отца, он работал для меня с помощью:

public class AirPlayService : Service 
{ 
    public object Get(Movie request) 
    { 
     var fileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ("Movies", request.Name); 

     var file = new FileInfo(fileName); 
     return new HttpResult(file, asAttachment:false); 
+0

Привет ValterZHD, я не вижу разницы с моим кодом, кроме дополнительной круглой скобки, которая заставляет компилятор жаловаться. – Richard