Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
WCF auf IIS kann Bilder nicht laden
Grumbler85
myCSharp.de - Member



Dabei seit:
Beiträge: 550
Herkunft: Rheingau Taunus

Themenstarter:

WCF auf IIS kann Bilder nicht laden

beantworten | zitieren | melden

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:
Zitat
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)
private Nachricht | Beiträge des Benutzers