locked
Silverlight Anwendung akzeptiert keine relativen Pfade RRS feed

  • Frage

  • Hallo Community,

    ich habe ein großes Problem und vermute, dass die Lösung ziemlich simpel ist.

    Ich habe eine Silverlightanwendung geschrieben, die bevor die Seite angezeigt wird, XML-Dateien einliest. Das funktioniert einwandfrei, wenn ich auf der Rootseite bin.

    Wenn ich die Anwendung in einen Unterordner verlege funktioniert nichts mehr. Es kommt der Fehler dass der Remoteserver die Datei nicht finden konnte...

    Die funktionierende URI für die Rooturl www.sample.de war: /Resources/Elements/Texts/file.xml

    Diese funktioniert nicht mehr mit der URI www.sample.de/Folder. Dort funktioniert nur die URL: /Folder/Resources/Elements/Texts/file.xml

    Die XAP liegt unter /Folder

    Kann mir jemand erklären, warum die Silverlight Anwendung das ignoriert? Und wie ich das umgehen kann?

    • Typ geändert Robert Breitenhofer Donnerstag, 22. Dezember 2011 16:15 Keine Rückmeldung des Fragenstellender
    • Typ geändert Robert Breitenhofer Mittwoch, 4. Januar 2012 09:12 Rückmeldung des Fragenstellender
    Freitag, 16. Dezember 2011 15:40

Antworten

  •         /// <summary>
            /// Gets the domain of the app and the existing relative folders to the app.
            /// </summary>
            /// <param name="relativeFolder">relative folder from the domain to the app</param>
            /// <returns>the domain if successful otherwise null</returns>
            private string GetAppDomain(out string relativeFolder)
            {
                try
                {
                    string splitter = "/Sample.xap";
                    string domain = App.Current.Host.Source.ToString().Split(new string[] { splitter }, StringSplitOptions.None)[0];
                    relativeFolder = domain.Split(new string[] { "http://" }, StringSplitOptions.RemoveEmptyEntries)[0];
                    int indexSlash = relativeFolder.IndexOf('/');
                    domain = domain.Substring(0, indexSlash + 7); // 7 because http://
                    relativeFolder = indexSlash == -1 ? string.Empty : relativeFolder.Substring(indexSlash);
    
                    return domain;
                }
                catch (Exception ex)
                {
                    relativeFolder = null;
                    Error.ThrowException(ex, "Could not find domain!", "App.GetAppDomain()");
                    return null;
                }
            }
    

    • Als Antwort markiert Gozar15 Montag, 16. Januar 2012 11:07
    Montag, 16. Januar 2012 11:07

Alle Antworten