Benutzer mit den meisten Antworten
Dateien auf Server auslesen

Frage
-
Guten Abend!
Ich versuche vergeblichst, Dateien in einem bestimmten Verzeichnis am Server auszulesen.
Das einzige was ich bis jetzt herausfinden konnte ist, dass ein WebService dafür benötigt wird, ich konnte jedoch bisher keinen guten Anhang dazu finden.
Kennt ihr vielleicht gute Quellen?
LG
lturek
Donnerstag, 18. November 2010 17:54
Antworten
-
Hi,
Ich versuche vergeblichst, Dateien in einem bestimmten Verzeichnis am Server auszulesen.
Das einzige was ich bis jetzt herausfinden konnte ist, dass ein WebService dafür benötigt wird, ich konnte jedoch bisher keinen guten Anhang dazu finden.
im Endeffekt brauchst Du serverseitig ein Skript (ASP, ASP.NET, P*P, Perl, ...), welches dir die Liste der Dateien ausliest und zurückgibt.
Wenn Du ASP.NET serverseitig einsetzen kannst, geht das über einen Webservice sehr einfach.
Der ASP.NET Webservice sieht dabei bspw. so aus:
Imports System.IO Imports System.Web.Services Imports System.Web.Services.Protocols Imports System.ComponentModel <System.Web.Script.Services.ScriptService()> _ <System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _ <System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ <ToolboxItem(False)> _ Public Class SilverlightHelper Inherits System.Web.Services.WebService <WebMethod()> _ Public Function GetFiles( ByVal FolderName As String ) As List( Of FileInfo ) Dim Result As New List( Of FileInfo ) Dim Directory As New DirectoryInfo( Server.MapPath( Path.Combine( "~/", FolderName ) ) ) Result = Directory.GetFiles().ToList() Return Result End Function End Class
Auf die Sicherheit musst Du natürlich auch achten, also dass bspw. nicht per ../../Irgendwas/Geheimes/ zugegriffen werden kann.Um den Webservice anzusprechen, schau mal hier:
http://timheuer.com/blog/archive/2008/03/14/calling-web-services-with-silverlight-2.aspx
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Oliver Michalski Donnerstag, 25. November 2010 09:52
- Als Antwort markiert Robert Breitenhofer Dienstag, 30. November 2010 17:29
Donnerstag, 18. November 2010 18:52 -
Falls die Dateien per Browser bereits abrufbar sind (virtuelles Verzeichnis oder Ähnliches) hilft dir folgender Code weiter:
http://www.silverlight-community.de/2010/09/inhalt-dynamisch-nachladen/
Daniel
http://www.silverlight-community.de - deutsche Community mit Tutorials, Blogs und Usergroups- Als Antwort vorgeschlagen Oliver Michalski Donnerstag, 25. November 2010 09:51
- Als Antwort markiert Robert Breitenhofer Dienstag, 30. November 2010 17:29
Freitag, 19. November 2010 12:56 -
Hallo,
man kann nicht sagen, man benötigt einen WebService. WebService ist nur eine der Möglichkeiten - es gibt eine ganze Menge.
Jetzt käme es auch noch auf die Qualität der "Verzeichnisses" an. Ist es ein physikalisches oder eine Web-URL (ggf. über IIS / virtuell)?
Bei den IIS kann man auch die Verzeichnis-Suche aktivieren- es gäbe viele Dinge zu sagen. Dazu käme jetzt die Authentifizierungs-Frage. Vielleicht meinst Du auch WCF Service, o.ä.. Weiterhin würde eine "Datei" - Übertragung ggf. über ein anderes Protokoll (als HTTP) laufen (können). Bei großen Dateien wären auch Streaming-Verfahren und auch ggf. wieder andere Protokolle (->oder auch WCF Bindings) sinnvoll. Auch könnte ein Zippen z.B. als XAP möglich sein um dann ggf. mit über deploymentcatalog.downloadasync zu laden.
Also, bevor ich Dir da Lösungen nenne, ist es IMHO erstmal wichtig, diese Punkte zu klären.BTW: (da schon ein paar Dinge genannt wurden) Tim Heuer und John Papa sind immer sehr gute Autoren für Silverlight Entwickler.
ciao Frank- Als Antwort vorgeschlagen Oliver Michalski Donnerstag, 25. November 2010 09:52
- Als Antwort markiert Robert Breitenhofer Dienstag, 30. November 2010 17:29
Freitag, 19. November 2010 20:09
Alle Antworten
-
Hi,
Ich versuche vergeblichst, Dateien in einem bestimmten Verzeichnis am Server auszulesen.
Das einzige was ich bis jetzt herausfinden konnte ist, dass ein WebService dafür benötigt wird, ich konnte jedoch bisher keinen guten Anhang dazu finden.
im Endeffekt brauchst Du serverseitig ein Skript (ASP, ASP.NET, P*P, Perl, ...), welches dir die Liste der Dateien ausliest und zurückgibt.
Wenn Du ASP.NET serverseitig einsetzen kannst, geht das über einen Webservice sehr einfach.
Der ASP.NET Webservice sieht dabei bspw. so aus:
Imports System.IO Imports System.Web.Services Imports System.Web.Services.Protocols Imports System.ComponentModel <System.Web.Script.Services.ScriptService()> _ <System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _ <System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ <ToolboxItem(False)> _ Public Class SilverlightHelper Inherits System.Web.Services.WebService <WebMethod()> _ Public Function GetFiles( ByVal FolderName As String ) As List( Of FileInfo ) Dim Result As New List( Of FileInfo ) Dim Directory As New DirectoryInfo( Server.MapPath( Path.Combine( "~/", FolderName ) ) ) Result = Directory.GetFiles().ToList() Return Result End Function End Class
Auf die Sicherheit musst Du natürlich auch achten, also dass bspw. nicht per ../../Irgendwas/Geheimes/ zugegriffen werden kann.Um den Webservice anzusprechen, schau mal hier:
http://timheuer.com/blog/archive/2008/03/14/calling-web-services-with-silverlight-2.aspx
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Oliver Michalski Donnerstag, 25. November 2010 09:52
- Als Antwort markiert Robert Breitenhofer Dienstag, 30. November 2010 17:29
Donnerstag, 18. November 2010 18:52 -
Falls die Dateien per Browser bereits abrufbar sind (virtuelles Verzeichnis oder Ähnliches) hilft dir folgender Code weiter:
http://www.silverlight-community.de/2010/09/inhalt-dynamisch-nachladen/
Daniel
http://www.silverlight-community.de - deutsche Community mit Tutorials, Blogs und Usergroups- Als Antwort vorgeschlagen Oliver Michalski Donnerstag, 25. November 2010 09:51
- Als Antwort markiert Robert Breitenhofer Dienstag, 30. November 2010 17:29
Freitag, 19. November 2010 12:56 -
Hallo,
man kann nicht sagen, man benötigt einen WebService. WebService ist nur eine der Möglichkeiten - es gibt eine ganze Menge.
Jetzt käme es auch noch auf die Qualität der "Verzeichnisses" an. Ist es ein physikalisches oder eine Web-URL (ggf. über IIS / virtuell)?
Bei den IIS kann man auch die Verzeichnis-Suche aktivieren- es gäbe viele Dinge zu sagen. Dazu käme jetzt die Authentifizierungs-Frage. Vielleicht meinst Du auch WCF Service, o.ä.. Weiterhin würde eine "Datei" - Übertragung ggf. über ein anderes Protokoll (als HTTP) laufen (können). Bei großen Dateien wären auch Streaming-Verfahren und auch ggf. wieder andere Protokolle (->oder auch WCF Bindings) sinnvoll. Auch könnte ein Zippen z.B. als XAP möglich sein um dann ggf. mit über deploymentcatalog.downloadasync zu laden.
Also, bevor ich Dir da Lösungen nenne, ist es IMHO erstmal wichtig, diese Punkte zu klären.BTW: (da schon ein paar Dinge genannt wurden) Tim Heuer und John Papa sind immer sehr gute Autoren für Silverlight Entwickler.
ciao Frank- Als Antwort vorgeschlagen Oliver Michalski Donnerstag, 25. November 2010 09:52
- Als Antwort markiert Robert Breitenhofer Dienstag, 30. November 2010 17:29
Freitag, 19. November 2010 20:09 -
Hallo Daniel!
Vielen Dank, bin jetzt schnell über den code drübergeflogen und es sieht genauso aus wie ich es mir in der Zwischenzeit überlegt habe! (also mit WebClient daten auslesen) - jetzt muss ich mir nichtmal mehr den Code einfallen lassen :D
Danke!
EDIT:
Ich merke erst jetzt wie das Forum hier funktioniert d.h. man Antwortet einem User und nicht einfach am Ende der Nachrichtenliste.
Ich wollte eigentlich noch allen für die Antworten danken, vielen Dank!
Da ich jetzt nicht mehr viel Zeit für das Projekt habe, und das Auslesen der Daten vom Server eig. nebensächlich ist, benutze ich die einfache WebClient Methode, da ich im Moment nicht weiß was genau der Zielserver unterstützt.
Donnerstag, 25. November 2010 09:38