Hallo,
ich habe eine Silverlight.Web-Anwendung, welche im IIS gehostet wird.
In dem Webprojekt setze ich einen System.Net.HttpListener auf.
Bei mir lokal (wenn ich Visual Studio als Administrator starte) klappt das. Wenn ich die Anwendung auf den IIS deploye, so bekomme ich ich die Exception:
System.Net.HttpListenerException (0x80004005): Zugriff verweigert at System.Net.HttpListener.AddAllPrefixes() at System.Net.HttpListener.Start() at SilverlightTest.Web.HttpServer.Server.ListenerThread() in D:\SOURCE_CODE\FISrpt\Server.Web\HttpServer\Server.cs:line 57 12
Was muss ich tun, damit der Code die Berechtigung hat den Listener zu Starten?
Hallo,
ein HttpListenener in einer WebAnwednung macht keinen Sinn. Ich würde eher einen Windows-Dienst oder ähnliches schreiben.
Generell sollte Threading im Web vermieden werden, da es mehr Probleme bereitet als löst. WebRequests lösen selber nur kurzlebige Threads aus, die selber keinen Thread beinhalten sollten.
Für was benötigst du den HttpListenener? Den Zusammenhang zwischen Web, Silverlight und HttpListenener ist aus deinem Post nicht wirklich ersichtlich.
Falls du mit Silverlight auf die Daten aus der Webanwendung kommen willst, ist der IIS schon dein HttpListenener und du kannst die Daten per WCF bereitstellen und konsumieren.
MfG
Jürgen
ASP.NET Zone | gutsch-online | sharpcms | .NET Stammtisch Konstanz-Kreuzlingen | See# Party
In meiner Silverlight Anwendung verwalte ich Dateien ähnlich wie im Dateiexplorer. Diese Dateien werden in einer Datenbank gespeichert. Auf die Daten greife ich mit Entity Framework + RIA Services zu.
Datei hoch-/runterladen klappt gut. Nun möchte ich aber eine Datei "Öffnen", d.h. die verknüpfte Anwendung soll die Datei öffnen (z.B. Worddatei, soll von Word geöffnet werden). Aus der Silverlightclient-Anwendung ist dies aus Sicherheitsgründen nicht möglich. Ich dachte mir nun, dass ich die Datei mit einem HttpServer unter einer URL zur Verfügung stelle. In der Silverlightclient-Anwendung öffne ich eine neues Broweserfenster mit der URL der Datei. Daraufhin lädt der Browser die Datei runter und bietet dann den Standarddialog zum Öffnen oder Speicher der Datei an.
Mir ist leider bis jetzt nichts besseres eingefallen. Ein separater Windowsdienst würde natürlich auch gehen, aber der müsste dann auch auf die DB zugreifen und die Dateien auslesen. Dies wird aber bereits von der Webanwendung gedacht und da dachte ich, dass die Webanwendung direkt den HttpListener aufmacht.