Laden...

Forenbeiträge von Samson Ingesamt 25 Beiträge

31.07.2006 - 12:32 Uhr

Hallo,

ich habe auf meiner Seite ein UpdatePanel in das ich nach Benutzereingabe weitere UpdatePanels einfügen möchte. Der Mode steht auf "Conditional" und ich aktualisiere bei Bedarf programmatisch mit panel.Update().

Das Problem ist, daß ich ja nach dem Einfügen eines dynamisch erstellten UpdatePanels auf jeden Fall das HauptPanel mit Update() aktualisieren muss. Sonst würde der neue Panel ja nicht angezeigt. Wenn ich jetzt einen weiteren UpdatePanel hinzufüge weiss ich ja nicht ob sich bereits einer im HauptPanel befindet. D.h. nach Update() ist der neue Panel drin der alte aber weg.

Wie kann ich die Panels einzeln aktualisieren wenn ich sie dynamisch erstelle und nicht bei jedem Aufruf die gesamte Seite wiederherstellen kann? Ich will daß der HauptPanel seine bisherigen ChildPanels nicht entfernt wenn ich etwas neues hinzufüge. Er soll sich zwar aktualisieren aber enthaltene UpdatePanels nicht anrühren.

Hat jemand eine Idee??

09.06.2006 - 21:46 Uhr

Hallo cadi,

hast du ein kleines Beispiel für diesen Callback und der Fortschrittsanzeige? Diese Frage kam hier immer wieder auf allerdings hat nie jemand Code bereitgestellt an dem man das Ganze nachvollziehen kann. Vielleicht kannst du ja deinen Code zippen oder einen Gerüst bereitstellen um die Technik zu veranschaulichen. Mir würde es auf jeden Fall weiterhelfen.

02.02.2006 - 11:05 Uhr

Hilfe.. Hat den niemand eine Idee??

Evtl. kann dieses Posting verschoben werden wenn hier niemand helfen kann.. Vielleicht in die "Rund um die Programmierung"-Ecke. Wo soll ich mit meiner Frage hin??

27.01.2006 - 16:16 Uhr

Hallo,

ich benutze in meiner WebApp log4net und habe einen FileAppender konfiguriert. Das Logging funktioniert auf meiner lokalen Maschine (XP, IIS 5.1) wunderbar. Ich habe dem aspnet-User die nötigen Rechte auf das Temp-Verzeichnis erteilt. Alles landet somit in C:\Temp\log-file.txt

Auf dem WebServer (Win2003, IIS 6.0) läuft das ganze leider nicht. Ich habe der IIS_WPG dieselben Rechte erteilt wie meinem aspnet-User und zusätzlich noch dem User unter der die Anwendung läuft. Der User ist natürlich Mitglied der IIS_WPG und somit war die Aktion überflüssig aber ich wusste halt nicht weiter..

Hat irgendjemand ähnliche Erfahrungen gemacht und kann mir weiterhelfen?? Komisch ist auch, daß ich beim Überwachen mit dem FileMon keinen Zugriffsversuch auf die Datei feststellen konnte. Also liegt es gar nicht an den Berechtigungen sondern log4net hat davor ein Problem.

Weiss jemand Rat?

23.11.2005 - 10:42 Uhr

Hallo nochmal,

hat den niemand eine Idee was man da machen kann? Ich bin doch bestimmt nicht der einzige den so etwas interessiert. Die Frage nach dem Speicherverbrauch kommt immer wieder und es gibt doch sicher einige die dieser Frage in Ihrer Anwendung nachgegangen sind..
Kann mir jemand einen Tip geben..?

21.11.2005 - 18:06 Uhr

Hallo,

ich habe ein Problem mit dem Speicherhunger einer Anwendung die ich so nicht direkt nachvollziehen kann. Es ist eine größere App mit WinForms, DataSets, XML usw. Ich habe auch mit verschiedenen Memory Profilern versucht der Sache auf die Spur zu kommen aber es hat nicht viel geholfen da die Profiler meist instabil und unübersichtlich waren.

Beim Arbeiten mit der Anwendung brauche ich etwas über 100MB (Release-Build) und möchte einfach rauskriegen welche Objekte dafür verantwortlich sind. Dazu habe ich auch an diversen Stellen eine Ausgabe eingebaut die mir den Speicher anzeigt.


long mem = GC.GetTotalMemory(false);
Console.WriteLine("Total memory: {0} Kb", mem/1024);

Wenn alles geladen ist und die Anwendung läuft liefert der Aufruf mir einen Wert um die 20MB. Die Assemblies selbst kommen auf insgesamt ca. 30 MB womit wir bei etwa 50 MB wären. Wofür verdammt nochmal geht der restliche Speicher drauf??

Es muss doch einen Weg geben das herauszukriegen. Hat sich jemand mal dafür interessiert und kann mir vielleicht einen Tip geben? Ich achte bereits darauf nicht mehr benötigte Referenzen auf null zu setzen und auch Bindings auf Events werden wieder deregistriert wenn das entsprechende Objekt stirbt.

Was kann ich noch machen?? Bitte helfen..

17.11.2005 - 17:36 Uhr

Genau,

ich würde System.Net.WebClient dafür nehmen. Aus dem SDk:


// Create a new WebClient instance.
WebClient myWebClient = new WebClient();
// Download home page data.
Console.WriteLine("Downloading " + remoteUri);                        
// Download the Web resource and save it into a data buffer.
byte[] myDataBuffer = myWebClient.DownloadData (remoteUri);

// Display the downloaded data.
string download = Encoding.ASCII.GetString(myDataBuffer);
Console.WriteLine(download);

05.10.2005 - 13:30 Uhr

Hi,

wie die Meldung schon besagt ist es eine externe Exception und du hast keine Chance sie anständig zu verfolgen. Bei mir trat dasselbe auf als ich mit EnableVisualStyles() meine WinForm XP-tauglich machen wollte.
Da diese Methode etwas buggy ist, habe ich das eben über eine manifest-datei gemacht und war meine Sorgen los. Du musst einfach mal schauen, welche Komponenten du benutzt und testweise auskommentieren. Vielleich hilft das weiter.
Wegen des unregelmäßigen Auftretens gibt es leider keine anständige Lösung. Du mußt einfach eine Zeit lang herumprobieren. Dann kannst du den Fehler vielleicht eingrenzen.

28.09.2005 - 12:32 Uhr

Jetzt hast du dir doch selbst die Antwort gegeben oder? 😁

Mach das ganze über ASP, dann brauchst du auch keine Clients zu proggen. In dem Fall ist sogar der WebService überflüssig. Alles was du vorhast kannst du dann direkt im Code machen.
Bei Bedarf kannst du aber immer noch WebServices einbinden. Also die ideale Lösung, oder?

27.09.2005 - 12:48 Uhr

Hallo,

ich habe eine Seite, die beim Klick auf einen Button eine Datei erzeugt und diese dem Client zurückschickt. Nach dem die Datei angekommen ist, würde ich gerne veranlassen das die Seite neu geladen wird. Wie kann ich das machen?

Beispiel:


try {
this.Context.Response.ClearContent();
this.Context.Response.ClearHeaders();

BinaryReader br = new BinaryReader(stream);
byte[] bytes = br.ReadBytes(1024);
while(bytes!=null && bytes.Length>0 && this.Context.Response.IsClientConnected) 
{
	this.Context.Response.BinaryWrite(bytes);
	bytes = br.ReadBytes(1024);
}
}
catch (HttpException) { .. }

this.Context.Response.Flush();

Beim Client erscheint dann der FileSave-Dialog und das wars. Die Seite wird nicht aktualisiert. Hat jemand eine Idee?

21.09.2005 - 09:24 Uhr

Es geht mir nicht um den Upload, der funktioniert bereits. Eine Progressbar brauche ich auch nicht weil ich die Meldungen anzeigen will und nicht den Status in %.

Nochmal: Die ganze Anwendung funktioniert bereits. Ich will nur per Javascript sekündlich die XML-Datei auf dem Server auswerten. Das, wie gesagt, funktioniert aber nur einmal und nicht wie gewünscht jede Sekunde.

Das es hier Probleme geben kann war mir schon klar. Der Server schreibt ja die Log-Einträge auch in dieselbe Datei. D.h. wenn mein Request bei ihm ankommt, ist diese Datei in dem Moment zum Schreiben geöffnet. Vielleicht resultiert daraus der Fehler.

Eine andere Idee, wie man die Log-Einträge auf dem Browser aktualisieren kann ist mir nicht eingefallen. Wenn es eine andere Möglichkeit gibt, nur her damit. Bin für jede Idee dankbar..

20.09.2005 - 18:16 Uhr

Hallo,

ich habe eine Seite, die nach einem FileUpload die Datei verarbeitet, was unter Umständen einige Minuten dauern kann. Während der Abarbeitung möchte ich den Benutzer informieren und habe mir folgendes gedacht:

Der Server schreibt sein StatusLog in eine XML-Datei im selben Verzeichnis und ich hole beim Client per XMLHttpRequest die Datei und aktualisiere den Seiteninhalt.

Da jetzt überall von Ajax die Rede ist, war es kein Problem Beispiele zu finden und diese zu nutzen. Es funktioniert auch wunderbar, allerdings nur wenn der Server nicht so beschäftigt ist. D.h. bei einer größeren Datei, die den Server etwas länger beschäftigt bekomme ich auf den ersten Request noch eine Antwort und kann den StatusText aktualisieren, danach liefert der Server nicht mehr.

Konkret: UpdateStatus() macht den Request und ruft sich wieder auf mit window.setTimeout("UpdateStatus()", 1000)

Falls die Verarbeitung abgeschlossen ist wird das im Response angezeigt und UpdateStatus nicht wieder aufgerufen. Dafür habe ich schon gesorgt. Doch warum wird der zweite Request nicht beantwortet?
Ich bekomme einen "server error 500" beim Versuch das XML zu laden während der Server knechtet. Vielleicht ist mein Skript nicht optimal aber für mich sieht es eher nach einem Serverproblem aus.

Hat jemand ähnliche Erfahrungen und kann mir vielleicht helfen??

Danke

05.09.2005 - 15:01 Uhr

ich habe eigentlich dieselbe Anwendung in mehreren virtuellen Verzeichnissen um sie leicht testen zu können. Die Anwendung ist sehr konfigurierbar und so kann ich gleichzeitig mehrere Designs, Szenarien etc. testen.
In einer Produktivumgebung wird so etwas eher nicht vorkommen, klar.

Aber zurück zu der Frage: Sever.MapPath(..) liefert mir eben nur den Bin-Ordner im wwwroot obwohl die Anwendung korrekt konfiguriert ist, d.h. das virtuelle Verzeichnis verweist auf einen Ordner auf Platte D:

Hast dir MapPath() in diesem Zusammenhang schonmal den richtigen Pfad gegeben? Wenn ja, muss ich zuvor irgendetwas zusätzliches machen denn bei mir wird definitiv nur wwwroot\bin zurückgegeben.

05.09.2005 - 12:44 Uhr

Hallo,

das problem dabei ist: du bekommst z.B C:\intepub\wwwroot\bin

Wenn du aber mehrere WebApps laufen hast hat jede App ihren eigenen Bin-Ordner. Dann müsste ich jedesmal den Unterordner beim Aufruf mitgeben, also etwa:


string path1 = Server.MapPath("/App1/bin");
string path2 = Server.MapPath("/App2/bin");

Somit kenne ich ja den virtuellen Pfad bereits und muss ihn nur noch in den absoluten Pfad umwandeln. Ich dachte eher an eine Funktion, die mir genau das abnimmt. Ich bin in der Doku bisher nicht so recht weitergekommen was das angeht..

Vielleicht weiß jemand Rat.

05.09.2005 - 09:51 Uhr

Morgen allerseits,

kennt jemand eine Methode die mir den Pfad zum bin-Ordner einer WebApplication liefert? Besser gesagt zur WebApplication selbst, da ist der Bin-Ordner ja drin.

Wenn man einfach mit Server.MapPath(..) arbeitet kann man die Datei nicht in einen Unterordner verschieben ohne davor den geänderten Pfad dieser Methode zu übergeben.
Gibts da keine bessere Lösung oder habe ich zu wenig gesucht?

05.08.2005 - 15:36 Uhr

Hallo nochmal,

ich habe etwas herumprobiert und festgestellt daß der selbe Code ausserhalb von DIV funktioniert. Es ist sehr seltsam, geht das wirklich nicht ?? Gibt es eine Erklärung dafür warum es sich innerhalb eines DIV-Elements so verhält??

Zum Ausprobieren:
Man erstelle eine einfache Seite und platziere eine DropDownList rein.
Setze AutoPostback = true
Liste füllen
Liste rendern

Der untere Code erzeugt einen Postback, wenn er nicht innerhalb eines DIV steht:


DropDownList listTypes = new DropDownList();
listTypes.AutoPostBack = true;
listTypes.DataSource = new string[] {"bla1", "bla2", "test"};
listTypes.DataBind();
listTypes.RenderControl(writer);

Grüße und schönes WE

05.08.2005 - 09:42 Uhr

Morgen,

also das mit dem Code ist etwas erklärungsbedürftig. Ich habe eigene Controls, die bestehende Controls erweitern. In diesem Fall ist das DropDownControl ein Wrapper welches eine DropDownList enthält:


DropDownControl listTypes = new DropDownControl();

writer.WriteLine(@"<div id=""types"" class=""types"">");

listTypes.AutoPostBack = true;
listTypes.InitControl(myType);
listTypes.RenderControl(writer);
...
writer.WriteLine("</div>");

Ich kann die Ausführung bis zu der Stelle verfolgen an der die DropDownList gerendert wird und weiß daher, das AutoPostback in dem Moment auf true gesetzt ist. Nur das Rendern kann ich nicht weiter debuggen und weiss daher nicht warum es nicht klappt.

Im HTML Code ist der einzige Unterschied das die eine Liste eben mit:


onchange="__doPostBack('_ctl2$2d26dc1f-4547-4249-ac6c-2610e1da2d5e$Value','')"

gerendert wird, die andere aber nicht.

Hiiilfee..

04.08.2005 - 18:42 Uhr

Hallo,

ich möchte innerhalb eines DIV-Elements eine DropDownList platzieren und auf AutoPostback setzen. Das funktioniert auch wunderbar, allerdings wird beim Rendern kein Postback rausgeschrieben.

Beim Debuggen sehe ich daß das Feld den richtigen Wert hat: m_AutoPostback = true

Aber warum wird es nicht richtig gerendert? Andere Listen in der Tabelle die sich nicht im DIV befinden werden korrekt gerendert, d.h. mit der __doPostback Funktion versehen. Nur bei diesem einen Control klappt es nicht.

Mache ich was falsch ?? Hat jemand eine Idee woran das liegen könnte??
Bin über jede Hilfe dankbar.

MfG

01.08.2005 - 22:45 Uhr

ein "cin >> a" oder ähnliches find ich auch net so prickelnd, bzw. es vergisst sich so leicht 😉

Danke im vorraus.

Nein, ich kenne keine Einstellung.. Aber warum ist nicht prickelnd ein cin>>a einzubauen??

Das macht jeder, der seine App auch mal unabhängig vom VisualStudio starten will. Ein cin oder gets(..) ist eigentlich Pflicht, wenn der User noch was sehen soll..

01.08.2005 - 22:09 Uhr

Hallo nochmal,

ich möchte euch die Lösung dieses dämlichen Problems nicht vorenthalten. Das Visual Studio hat sich einfach an irgend etwas verschluckt. Ich habe folgendes probiert:

In der OnInit-Methode habe ich einige Initialisierungen auskommentiert und dann die aspx-Datei geöffnet. Wurde anstandslos vom Designer akzeptiert. Danach habe ich den Kommentar wieder entfernt und siehe da, der selbe Code, den der Designer nicht mochte war auf einmal überhaupt kein Problem mehr..


#region Web Form Designer generated code
      override protected void OnInit(EventArgs e)
      {
              //
              // CODEGEN: This call is required by the ASP.NET Web Form Designer.
              //
              InitializeComponent();
              base.OnInit(e);
      } 

Leider musste ich das für jede Seite einzel machen, zum Glück waren es 7 insgesamt. Wie gesagt, man kommentiert etwas aus, z.B. die Zeile


  // base.OnInit(e)

und der Designer macht keine Probleme. Danach kann man den Code wiederherstellen und hat die Gewissheit, dass es nicht daran lag. Warum der Designer deswegen so rumzickt bleibt wohl ein Fall für die X-Files..

Schönen Abend noch

01.08.2005 - 16:34 Uhr

Schön wärs.. wenn es so einfach wäre..

Habe oben schon geschrieben daß ich den Code nicht geändert habe. Du musst dir das so vorstellen:

Heute Abend 17:50 verlässt du dein Büro und kommst am nächsten Morgen wieder, öffnest die Seite und.. Bang!

Dann fragst du dich was das soll.. Die Lösungen im Netz haben nicht geholfen

01.08.2005 - 09:40 Uhr

Hallo,

erstmal vielen Dank für die Links aber das hilft leider nicht weiter. Ich hatte zuvor auch etwas im Netz geschaut, aber nichts davon traf auf mein Problem zu.

Das komische ist ja, das ich keine Änderung am Code vorgenommen habe. Da ist also nicht eine Klasse vor eine andere gerutscht oder wie auch immer. Es geht hier um mehrere Seiten die anstandlos kompiliert werden und von heute auf morgen nicht mehr dem Designer gefallen.

Ich bin wirklich ratlos. Es gibt nichts wo ich mit der Fehlersuche beginnen kann..
Hat nicht jemand dasselbe Problem und kann mir helfen..??

X(bitte, bitte, bitte..

29.07.2005 - 14:48 Uhr

Hallo,

ich habe ein kurioses Problem mit dem VS2003. Mein WebProjekt existiert schon seit Ewigkeiten und beim Klick auf eine .aspx-Seite wurde diese immer mit dem Designer geöffnet, sprich ich sah den Seitenaufbau.

Von einem Tag zum anderen geht das jetzt nicht mehr obwohl ich keine Änderungen vorgenommen habe. Es kommt eine der beiden Fehlermeldung unten und danach wird der Seitencode angezeigt.

Meldung1:

The file could not be loaded into the Web Forms designer. Please correct the following error and then try loading it again:
The designer could not be shown for this file because none of the classes within it can be designed.
Make sure all of the classes used in the page are built or referenced in the project.

oder Meldung 2:

The file could not be loaded into the Web Forms designer. Please correct the following error and then try loading it again:
Unspecified error
Make sure all of the classes used in the page are built or referenced in the project.

Ich habe im Netz Informationen darüber nur bzgl. des CF gefunden. Aber bei mir handelt es sich um eine normale WebAnwendung die auch kompiliert und läuft. ICh habe überhaupt keine Ahnung warum der Designer nicht mehr will..

Kann jemand helfen ??
Danke

20.07.2005 - 20:55 Uhr

Hallo und Danke erstmal..

Kannst du mir ein kleines Beispiel nennen/schicken? Ich würde gerne sehen wie sich das Ganze verhält und ob es visuell in etwa dem gleichkommt, was ich gerne hätte.

Hast du eine Seite auf der das läuft? Wenn nicht, poste bitte kurz deine Umsetzung. Dann kann ich sehen, ob es zu meiner App passt.

Schönen Abend noch,
Ciao

19.07.2005 - 23:09 Uhr

Hallo,

kennt jemand einen Trick wie man beim Versenden eines Formulars den Mauszeiger ändern kann? Es sollte eine Sanduhr angezeigt werden um dem Benutzer zu verdeutlichen das etwas passiert.

Leider funktioniert so ein einfaches JavaScript nicht, wenn man da cursor.style = 'wait' setzt und beim Submit aufruft. Für Ideen wäre ich dankbar..

MfG