Laden...

WCF auf IIS kann Bilder nicht laden

Erstellt von Grumbler85 vor 13 Jahren Letzter Beitrag vor 13 Jahren 882 Views
G
Grumbler85 Themenstarter:in
538 Beiträge seit 2008
vor 13 Jahren
WCF auf IIS kann Bilder nicht laden

Hallo allerseits,

ich versuche in einer WCF Applikation einen Cache (System.Runtime.Cache) mit Daten zu füllen.
Die Daten sind ICOs und selbige sollen in einer bestimmten größe bereitgehalten werden und dann bei Anfrage an einen Client übermittelt werden.

Soweit so gut.
Da die WPF gute Image Funktionen anbietet (Windows.Media.Imaging) versuche ich die BitmapImage Klasse zu verwenden.
Die Bilder werden von einem weiteren HTTP Server geladen.

Da ich Probleme hatte hier meine momentan angepasste Funktion (ich bin mir im Klaren, dass ich direkt eine URI angeben könnte).


try  {
  //Load data via WebRequest
  WebRequest req = WebRequest.Create(appData.IconURI.Trim());

  //Set CachePolicy
  req.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.BypassCache);

  //Read response as stream
  WebResponse response = req.GetResponse();
  using (System.IO.Stream imgStream = response.GetResponseStream())
  {
    BitmapImage img = new BitmapImage();
    img.BeginInit();
    img.DecodePixelWidth = 64;
    img.CacheOption = BitmapCacheOption.None;
    img.StreamSource = imgStream;
    img.EndInit();

    IconCache.Add(appData.IconURI, img, new CacheItemPolicy());
  }
}
catch { }

Beim Aufruf von EndInit kommt es dann zu folgender Fehlermeldung:

Die Verzeichniseigenschaft wurden nicht im Cache gefunden.
Selbiges ist eine COMException aus der Active Directory (!?)

Der StackTrace:
bei System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
bei MS.Win32.WinInet.get_InternetCacheFolder()
bei System.Windows.Media.Imaging.BitmapDownload.BeginDownload(BitmapDecoder decoder, Uri uri, RequestCachePolicy uriCachePolicy, Stream stream)
bei System.Windows.Media.Imaging.LateBoundBitmapDecoder..ctor(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy requestCachePolicy)
bei System.Windows.Media.Imaging.BitmapDecoder.CreateFromUriOrStream(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy, Boolean insertInDecoderCache)
bei System.Windows.Media.Imaging.BitmapImage.FinalizeCreation()

Für Ideen und Hilfestellungen bin ich immer wie immer Dankbar

Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)