none
Einbinden von css und Bildinhalten in aspx Seite im isv Ordner RRS feed

  • Frage

  • Hallo,

    ich habe folgendes Problem.
    Ich habe eine aspx Seite, welche bestimmte Logiken gegen CRM Datensätze ausführt im ISV Ordner angelegt. Natürlich in einem extra Unterordner.
    In diesem habe ich einen CSS und einen Image Unterordner.
    Struktur sieht dann wie folgt aus:
    ISV\Unterordner
    ISV\Unterordner\CSS
    ISV\Unterordner\Images
    Nun möchte ich in dieser apsx Seite die Stylesheet-Datei und ein paar Image Dateien referenzieren. Dies klappt jedoch nicht. Ich kann die Dateien in meiner aspx Seite nicht referenzieren. Egal, ob ich einen relativen Pfad oder den kompletten Pfad angebe.
    CRM läuft auf einem W2008 Enterprise Server auf IIS7. Der CRM Server läuft derzeit als onPremise Installation. Der Unterordner läuft nicht als Virtuelles Verzeichnis sondern soll ausdrücklich unter dem CRMAppPool laufen.
    Wenn ich versuche die Dateien direkt aufzurufen kommt immer eine IIS Fehlermeldung:
    HTTP-Fehler 404.0 - Not Found
    Die gesuchte Ressource wurde entfernt oder umbenannt, oder sie steht vorübergehend nicht zur Verfügung.
    
    Modul IIS Web Core 
    Benachrichtigung MapRequestHandler 
    Handler StaticFile 
    Fehlercode 0x80070002 
    

    Wenn ich die CSS Datei in css.aspx umbenenne, kann ich diese aufrufen.
    Dann kann ich sie auch innerhalb meiner aspx Seite referenzieren. Die Bücher zu Implementierung schweigen sich in Bezug auf die Referenzierung aus. Im Netz ist auch nichts zu finden.
    Mache ich was falsch? Muss ich zwingend einen Virtuellen Ordner erstellen? Die Funktionalität soll ja auch offline laufen und da der Cassini Server keine virtuellen Verzeichnisse unterstützt müsste es ja so problemlos laufen?
    Was mache ich falsch?
    Ich bin für jede Hilfe dankbar.

    Gruß Michael
    Dienstag, 2. März 2010 16:43

Antworten

  • Hi Michael,

    das Problem liegt an dem VirtualPathProvider, den das CRM verwendet um den Kontext des Benutzers auf die korrekte Organisation umzubiegen.
    Die Organisation wird in der aufgerufenen URL mit angegeben (entweder / für die Standardorganisation oder /orgname für eine bestimmte Organisation).
    Diese Pfade exisitieren physikalisch nicht. 
    Jede Datei die durch ASP.NET ausgeliefert wird durchläuft diesen Provider, was erklärt wieso du deine Dateien referenzieren kannst wenn du ihnen die Erweiterung .aspx gibst.

    Du musst bei den Referenzen darauf achten, dass sie nicht auf /orgname/isv/... sondern auf /isv/... gesetzt sind. Du siehst die Pfade am Besten, wenn du den Verkehr zwischen Client und Server z.B. mit Fiddler mitschneidest.
    Dienstag, 2. März 2010 19:48
  • Zusätzlich hat sich hier übrigens gezeigt, dass es eine gute Vorgehensweise ist, gerade auf Bilder (und durchaus auch auf andere Ressourcen) anonymen Zugriff zu gewähren, sofern der Benutzerkontext hier nicht zwingend benötigt wird. Die Zugriffe laufen hier meist deutlich schneller und ressourcenschonender.
    Jürgen Beck

    Dipl. Kfm./Wirtschaftsinformatik
    MVP, MCSD.NET, MCITP DBA, MCDBA, MCSE
    Microsoft Certified Business Management Solutions Professional
    Microsoft Certified CRM Developer
    Microsoft Certified Trainer

    ComBeck IT Services & Business Solutions
    Microsoft Gold Certified Partner
    Microsoft Small Business Specialist

    Developing & Supporting Business Applications from small business to big enterprises covering scores of sectors

    http://www.combeck.de
    Montag, 17. Mai 2010 18:19
    Moderator

Alle Antworten

  • Hi Michael,

    das Problem liegt an dem VirtualPathProvider, den das CRM verwendet um den Kontext des Benutzers auf die korrekte Organisation umzubiegen.
    Die Organisation wird in der aufgerufenen URL mit angegeben (entweder / für die Standardorganisation oder /orgname für eine bestimmte Organisation).
    Diese Pfade exisitieren physikalisch nicht. 
    Jede Datei die durch ASP.NET ausgeliefert wird durchläuft diesen Provider, was erklärt wieso du deine Dateien referenzieren kannst wenn du ihnen die Erweiterung .aspx gibst.

    Du musst bei den Referenzen darauf achten, dass sie nicht auf /orgname/isv/... sondern auf /isv/... gesetzt sind. Du siehst die Pfade am Besten, wenn du den Verkehr zwischen Client und Server z.B. mit Fiddler mitschneidest.
    Dienstag, 2. März 2010 19:48
  • Zusätzlich hat sich hier übrigens gezeigt, dass es eine gute Vorgehensweise ist, gerade auf Bilder (und durchaus auch auf andere Ressourcen) anonymen Zugriff zu gewähren, sofern der Benutzerkontext hier nicht zwingend benötigt wird. Die Zugriffe laufen hier meist deutlich schneller und ressourcenschonender.
    Jürgen Beck

    Dipl. Kfm./Wirtschaftsinformatik
    MVP, MCSD.NET, MCITP DBA, MCDBA, MCSE
    Microsoft Certified Business Management Solutions Professional
    Microsoft Certified CRM Developer
    Microsoft Certified Trainer

    ComBeck IT Services & Business Solutions
    Microsoft Gold Certified Partner
    Microsoft Small Business Specialist

    Developing & Supporting Business Applications from small business to big enterprises covering scores of sectors

    http://www.combeck.de
    Montag, 17. Mai 2010 18:19
    Moderator