Bir görüntü/jpeg sonucu döndüren bir IStreamWriter ve IHasOptions uygulamasıyla, WriteTo'da bir hata oluşursa, AppHost'daki global hata işleyicisi çağrılmaz ve resim/jpeg başlığı kalır. bir resim/jpeg HTTP Üstbilgisi ile bir HTML hatası (ServiceStack tarafından oluşturulmuş) ile sonuçlanır. Seçenekler yana ServiceStack'ın IStreamWriter & IHasOptions ile işleme sırasında hata oluştu
public class SampleStreamWriter : IStreamWriter, IHasOptions
{
void WriteTo(Stream responseStream)
{
// This would actually be a delegate
throw new ApplicationException("...");
}
public IDictionary<string, string> Options
{
get
{
return new Dictionary<string, string>
{
{HttpHeaders.ContentType, "image/jpeg"}
};
}
}
}
WriteTo önce denir
, WriteTo iç/catch denemek ve özellikle örneğin Content-Type değiştirmek mümkün değildir: Burada bu yeniden nasıl bir örnek "application/json", ve manuel olarak hata yanıtını geçersiz kılın.bu uygulanabilir nasıl HTTP Yanıt AppHost en ServiceExceptionHandler günlük çağrılır olduğunu, hatanın Content-Type değeri vardır ve bir bonus olarak böylece?
Bu mantıklı; Bu, doğrudan doğruya yanıt veya daha iyi hata işleme akışı arasında bir anlaşma yapmak anlamına gelir. Sonra bir MemoryStream dönen ve hizmette doğrudan Tepki ContentType'ı yazma son çare olacaktır. Yardım ettiğin için teşekkür ederim! –