Laden...

Forenbeiträge von schuppsl Ingesamt 789 Beiträge

14.03.2012 - 07:57 Uhr

Ich habs jetzt noch nicht geschafft, Elmah dazu zu bringen in eine Access DB zu loggen, die im Verzeichnis App_Dada liegt.

Die Frage die sich mir stellt ist:
Wird in eine Datenank geloggt, benötige ich doch genauso Zugriffrechte wie wenn ich als XML logge, oder?

13.03.2012 - 14:37 Uhr

Hallo, zu dem Thema möchte ich noch eine Frage stellen.

Ich nutze Elmah unb bin soweit zufrieden.
Das Verzeichnis, indem die Dateien gespeichert werden, befindet sich aber quasi im Projektverzeichnis also ~/log.

Das ist beim IIS ein Problem, da nach einer Neuinstallation der Anwendung der IIS beim ersten Aufruf meckert, daß er keine Zugriffsrechte auf das log Verzeichnis hat.

Ich kann natürlich diesem Verzeichnis dem IIS_IUSR oder wieder der heist, Zugriffsrechte erteilen, ist aber aus Sicherheitsgründen nicht zu empfehlen,da auf das Verzeichnis keinerlei Schreibzugriff erfolgen sollten.

Das hat mit ein Admin empfohlen.

Nur, wie kann ich ELMAH beibringen daß es die Dateien außerhalb des Verzeichnisses speichern soll?
Und wo soll ich das speichern?

Ich kann das im Programmverzeichnis ablegen, aber wie sage ich das dann Elmah? (logpath)



  <elmah>
    <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/admin" />
    <security allowRemoteAccess="0" />
  </elmah>

Hat jemand Tips?

07.03.2012 - 09:12 Uhr

Nun, in diesem Fall habe ich eine ASP.NET Anwendung die lokal auf einem Server in einer Firma läuft.
Intern kein Problem, aber sobald ich von Unterwegs zugreifen will habe ich ein Problem.

Mit einer VPN Verbindung kann ich einen Tunnel zum Firmenserver aufbauen, auf dem die ASP.NET Seite läuft und dann im Browser die Anwendung aufrufen.

Somit wäre die Verbindung ja auch gesichert soweit ich weiß.(?)

07.03.2012 - 08:51 Uhr

Oder eben VPN (?)

06.03.2012 - 16:53 Uhr

Hallo mal wieder.

Ich habe eine mobile ASP.NET Client-Server Anwendung, der Server ist eine von uns Programmierte Software.

Ruft der Client die Webseite auf, kommt er auf die Login Seite indem er Name und Passwort angibt.

Diese Daten werden im Klartext übertragen und können somit von jedem SocketSniffer mitgelesen werden.

Aber wie soll das auch anders gehen, der Browser kann ja das Passwort nicht verschlüsseln.

Verschlüssele ich das Passwort per Javascript bringt das auch nichts, denn das kann jederzeit von jedem eingesehen werden.

Beibt hier nur SSL?

15.12.2011 - 15:20 Uhr

ELMAH ist nicht schlecht, aber kann man damit auch eigene Fehlermeldungen loggen?
Also Fehler die von mir abgefangen wurden??

06.12.2011 - 14:37 Uhr

Dasselbe Problem habe ich auch...gibts hierfür eine Lösung?

23.11.2011 - 09:27 Uhr

Moin, also ich habe desselbe Problem wieder.
Ich hatte zum Test alles was mit IIS zu tun hatte deinstalliert, dann das Setup gestartet bis die Meldung kam, daß eben IIS benötigt wird.

Dann habe ich alle IIS Dinste incl. IIS6 Kompabillität installiert und jetzt kommt wieder diesselbe Meldung.

Es hat also leider doch nichts mit den IIS6-Diensten zu tun.

Edit:
Also die Meldung kommt wohl, wenn in den IIS keine Webseite angelegt ist, also rein gar nichts.
Webseite anlegen und es geht.

22.11.2011 - 11:32 Uhr

Hallo Leute, bin am Verzweifeln und google gibt keine Lösung her.
Ich habe in VS2008 ein Web-Setup erstellt und auch schon ein paar Mal installiert.

Gestern hatte ich einmal das Setup unterbrochen, seit dem kann ich das Setup nicht mehr ausführen.

Meldung:> Fehlermeldung:

Installation unvollständig.

Der Installer wurde unterbrochen, bevor Setup installiert werden konnte. Starten Sie den Installer erneut um Setup auszuführen.

"Setup" ist in diesem Fall mein Setup Projekt.

Ich habe schon versucht mit msiexec.exe /(un)register den Dienst neu zu registrieren, was keine Änderung brachte.
Auch habe ich das Setup umbenannt, Produkt- und Update-ID erneuert und das komplette Setup gelöscht und neu erstellt.
Keine Änderung.

Auch habe ich schon mit dem "Windows Installer CleanUp Tool", das Setup aus der Installer Datenbank entfernt.
Keine Änderung.

Möchte ich "Setup" deinstallieren, rödelt der PC ne Weile und bringt dann auch eine Fehlermeldung:

Fehlermeldung:
Diese Aktion ist nur zulässig für Produkte, die im Augenblick installiert sind.

Ein Teufelskreis.

Andere Windows (Fremd-)Installer Dateien funktionieren.

Was kann ich da tun und vor allem, wie kann man dieses Dilemma beim Kunden verhindern?

EDIT: Ich habs endlich gefunden.

Man muss die IIS6-Kompabillitätsverwaltung installieren, dann geht es zumindest bei mir.
Das hatte ich zwar schon immer installiert, aber nach der Deinstallation von IIS nicht wieder installiert.
Ich vermute, daß das De- und Installieren geholfen hat.

16.11.2011 - 12:09 Uhr

Sschau Dir auch gleich das Thema RouteTables an.
Hier kannst Du Routen definieren und sie sicher an jeder Stelle der Anwendung aufrufen.

  
            context.MapRoute( "Erstelle_Socketverbindung", "Home/Index",  
                new { controller = "Home", action = "Index" }  
            );  
  
            context.MapRoute( "Home_Index", "Home/Index",  
                new { controller = "Home", action = "Index" }  
            );  
            context.MapRoute( "Home", "Home",  
                new { controller = "Home", action = "Index" }  
            );  
  

Und nun kannst Du überall einfach nur noch
<a href="@Url.RouteUrl("Erstelle_Socketverbindung")"> verwenden - oder auch einfach nur @Url.RouteUrl("Home").

Beides führt zur selben Action.

Wo genau füge ich denn das ein???

15.11.2011 - 09:22 Uhr

Alles klar, das erklärt einiges 😁

15.11.2011 - 09:07 Uhr

Moin, mal noch eine Frage:
Wenn ich jetzt mehrmals diesselbe View aufrufe möchte, nur mit verschiedenen Parametern geht das nicht.
z.B.

Ich rufe den View das erste Mal aus einem Menü auf:


public ActionResult meineAction()

Dann, aus dem View heraus:


public ActionResult meineAction(ind id)

Das kapiert der nicht (und ich auch nicht)
Geht das überhaupt oder nicht?

09.11.2011 - 13:28 Uhr

Ok alles klar, dann speichere ich die Daten in der Session.

09.11.2011 - 13:17 Uhr

Hi,
bezugnehmend auf:

Also besonders das hier gefällt mir:

h.ErrorText = "Socket Fehler";
return View("SocketRetryButtonView",h);

So habe ich nur eine Instanz vom Model und kann die Fehlermeldung dem Fehler-View übergeben.

Kann ich auch die Daten wieder vom View an eine Action weiterleiten?

   public ActionResult PrefSave(MY.MOBILE.Models.Home h)

Wenn ich diese Action aufrufe, indem ich z.B. ein Formular absende, ist h = null, obwohl ich das "h" in den letzten Action an den View übergebe...

09.11.2011 - 10:28 Uhr

Hi, ich habe gar keine Email-Benachrichtigung erhalten.
Danke für die Links, werde ich mir mal reinziehen.
Grüßle

04.11.2011 - 10:01 Uhr

Moin Herr Abt,
ich hätte da noch eine knifflige Frage, welche mir niemand beantworten kann wie es aussieht:

Und zwar geht es um Links im View.

Bei jqm (jquerymobile) habe ich ja die HTML5 Attribute wie "data-role=button" usw.

Jetzt bin ich doppelt im Dilemma.

Beispiel, ein ganz normaler Link:

<a href="/Home/pref" data-role="button" data-inline="true" data-icon="gear" data-iconpos="notext"></a>

Alles gut und alles Prima soweit.
Nur, wenn ich die Anwendung exportiere und in ein Unterverzeichnis installiere, stimmt der Link nicht mehr.

Beispiel:
http://localhost:5555/Home
Der Link verweist dann auf /Home/pref und das stimmt so auch

Wird die Anwendung nun in ein Unterverzeichnis installiert stimmt dann der Pfad nicht mehr:
http://localhost:5555/unterverz/Home
Der Link verweist dann auf /Home/pref was natürlich nicht stimmt, denn der unterverzeichnis fehlt ja

Ich habe schon alles mit "~" vornedran, zwischendrin versuche, keine Chance es wird immer falsch gemappt.

Wie kann ich das hier richtig machen?

Das Zweite ist:
Wenn ich das über Html.Actionlink realisiere kann ich die attirbute nicht zuweisen, da ich nir MVC2 habe und der underscore wird somit nicht korrekt umgemappt.
Beispiel:

<% Html.ActionLink("Preferences", "pref", "Home", new { data-role = "button" }); %>

Jetzt stimmt zwar der Pfad zum Unterverzeichnis, aber data-role kann nicht ausgewertet werden, wegen dem Bindestrich (erst ab mvc2)

Ich habe schon sämtlich Beispiele im Netz mit Dictionary etc versucht, aber da wird immer nur das Object zurückgegeben, Ergebnis ist das hier:

<a class="ui-btn-left ui-btn ui-btn-corner-all ui-shadow ui-btn-up-b" href="/Home/pref?Length=4" values="System.Collections.Generic.Dictionary2+ValueCollection[System.String,System.Object]&quot; keys=&quot;System.Collections.Generic.Dictionary2+KeyCollection[System.String,System.Object]" count="2" comparer="System.Collections.Generic.GenericEqualityComparer`1[System.String]" data-theme="b">

So wird das im View aufgerufen:

<%= Html.ActionLink("Preferences", "pref", "Home", new Dictionary<string,Object> { {"class","prev"}, {"data-details","yada"} }) %>

Also es geht nichts und das ist echt ein Grande Problem im Moment.
Wenn eins der beiden Lösung funzen würde, reicht mir das schon...

Any Suggestions?

28.10.2011 - 15:08 Uhr

Ok, vielen Dank!

Der ausschlaggebende Satz, der die Zündug verursachte von Dir war der da:

Du legst im Model eine Property fest, zB LabelText und übergibst das an die View.

....

Die View bestimmt was dynamisch ist; danach richtet sich das Model, das Du im Controller befüllen musst.

Danke und ein schönes Wochenende.

28.10.2011 - 14:58 Uhr

Dein Code muss ich mir nächste Woche mal anschauen und** stimmt ja**:
Ich kann ja im View ganze Codeblöcke verwenden, hab ich bisher noch nie gemacht..deshalb.
So, jetzt noch razor reinziehen, dann dürfte es das für den Anfang gewesen sein.


  
    <%    
     if(Model.btnErrVisible == true){        
    %>
    <a href="/Home/Index" iD="hypWdhConn"  data-ajax="false" data-role="button" > <% Response.Write( Resources.app.CP_wiederholen); %></a>
    <%} %>

Feddisch.

28.10.2011 - 14:22 Uhr

Ok, jetzt ist es soweit, daß ich nichts mehr verstehe.

Aber das macht nichts, denn es ist Freitag und ich geh jetzt Kaffee holen.
Über das was du schreibst in Deinem letzten Post muss ich noch nachdenken, da ich das Konzept noch nicht wirklich verstanden habe, aber Dank Deiner Starthilfe wirds nun etwas klarer und ich habe immerhin schon eine kleine Seite hinbekommen.

Ich denke im Moment noch, daß ich den Button zum Retry extra ein-und ausblenden muss und da fehlt mir noch der Zusammenhang.
In Webforms: ErrorBtn.Visible= true:-)

Ich werde es schon herausbekommen, vielen Dank nochmal für Deine Starthilfe!

Also Grundsätzlich:

Controller:
Der Einstiegspunkt einer jeden Seite.
Je nach aufgerufener Seite (URL) wird der eine oder andere Controller aufgerufen.
Hier wird dann, je nach Controller, die ganze Programmlogic verarbeitet.
(Webform: Page_load jeder einzelnen Seite)

Models:
Models sind Datenmodelle die in der Anwendung vorkommen, d.h. Properties, Datenbanken oder DataTables etc. die dann im Controller verwendet werden und an den View weitergereicht werden.
(Webform: Datenbanken oder Klassen )

Views:
Zu jedem Controller gehört mindestens eine Ausgabe (View), jeder Controller kann aber auch einen beliebigen andere View aufrufen.
Im View können dann die Daten aus dem Model durch den Controller dargestellt werden.
(Webform: *.aspx Seite)

So habe ich es bisher verstanden:-)

Edit: Ich habs jetzt mit dem ein/ausblenden wie Du das vorher gemeint hast:
Ich erstelle einfach eine Prop. vom typ bool und weise diese true oder false zu.
Im View sieht das dann so aus:

<a href="/Home/Index" iD="hypWdhConn"  data-ajax="false" data-role="button" style="display:<%= Model.btnerrShow %>"></a>

Das True/False kann ich hier ja nicht direkt verwenden,muss es also als CSS mappen.

Gefällt mir gefällt mir...vor allem weiß ich endlich WAS hinten rauskommt...

28.10.2011 - 13:47 Uhr

Jap, das habe ich schon🙂

Und so kann ich auch den Fehlertext übergeben...:

...Controller...

Action Home:



//Instanz des Models erstellen

MeinModel.Models.home h = new MeinModel.Models.home();
h.WelcomeText =" Tag auch";


//...Socket erstellen
//Socket ok

....

if( socketOK )
{
   return View("SocketOK"); 
}
else
{
   h.ErrorText = "Socket Fehler";
   return View("SocketRetryButtonView",h);
}


Also besonders das hier gefällt mir:

h.ErrorText = "Socket Fehler";
return View("SocketRetryButtonView",h);

So habe ich nur eine Instanz vom Model und kann die Fehlermeldung dem Fehler-View übergeben.
Ey man, ist ja easy 😁

Ist das so überhaupt praktikabel?

Edit:
Nachteil des Ganzen ist:
Ich muss zwei Views, also "Seiten" erstellen nur weil ich in der einen eine Fehlermeldung anzeigen will. Ansonsten ist diese ja identsich.
Mit WebForms kann ich das "Fehler Label" ein-und ausblenden...

Edit2: Ich habe im Quelltext nur das was ich reingeschrieben habe...sonst nichts...uiuiui

28.10.2011 - 13:23 Uhr

Hm...ja ok ich habs jetzt mal soweit.
Also ich mache eine Startseite, wenn die aufgerufen wird werden die Sockets erstellt.
Geht das schief, möchte ich eine Fehlermeldung anzeigen und einen "Wiederholen" Button einblenden.

Ich nehme an, das geht nicht und ich muss dafür ein extra view erstellen???
-> Trennung Code/GUI ?

28.10.2011 - 11:34 Uhr

Sehe gerade Dein Problem nicht?!

Naja mein Problem aktuell ist, daß ich keine Ahnung habe was wo reinkommt und wie ich z.b. ein Label in einem View irgendwie anspreche bzw. mit dynamisch mit text füllen kann.
Aber das liegt wohl daran, daß MVC gänzlich anders aufgebaut ist.

28.10.2011 - 10:36 Uhr

In dem NerdDinner wird wie leider überall auch nur mit Datenbanken gearbeitet.
Meine Applikation ist vollkommen dynamisch bis auf wenige Bereiche.
Es gibt einen "abgeschirmten" Userbereich mit Login und die Daten kommen ausschließlich von einer Socketverbindung und Controls werden anhand der Daten erzeugt...
Wie es scheint ist MVC wie- Webforms - ausschließlich für starre Daten besser geeignet...?

28.10.2011 - 09:08 Uhr

Hi,

das mit den Models, Views und Controller habe ich **einigermaßen **verstanden.
Habe gestern mal einen ganzen Tag investiert um mich über MVC zu informieren und habe auch ein sehr gutes Tutorial als Video heruntergeladen ...von? Weiß nimmer.
Aber das war schonmal sehr gut.

Trotzdem habe ich keine Ahnung wie ich z.B. einem Label dynamische Texte einpflanze.
MVC ist nicht einfach und sehr komplex wie es aussieht.

Dann muss ich mir mal die von Dir beschriebenen Tutorials durchackern.
Mit Englisch habe ich absolut kein Problem, nur auf Deutsch wäre es mir manchmal lieber🙂

Hast Du eine Buchempfehlung?

PS: Wenn Deine Präsentation fertig ist, kann die mir ja mal zukommen lassen 😁

28.10.2011 - 08:32 Uhr

Moin Abt,

also nochmal zu Deinem Post.
Ich habe in den letzten zwei Jahren ein stabile Webform Anwendung entwickelt und bin so ziemlich auf alle Probleme gestoßen die es wohl mit Webforms gibt, incl. der Lifecycle-ViewsState-Falle bei dynamisch generierten Controls und den Problemen mit den eigenwillig dynamisch generierten IDs.
Und alles funktioniert mit jQuery perfekt, da es genügend Workarounds im Netz gibt.

Das einzige ist der von Dir beschriebene erzeugte Overhead, das ist nun wirklich ein Graus!
Und die fehlende Möglichkeit auf die Ausgabe Einfluss zu nehmen.

Da ich ursprünglich aus der C/C++ Ecke komme, wäre es wohl von Anfang an besser gewesen mit MVC zu arbeiten, da hätte ich mir sicherlich einiges ersparen können, keine Frage.

Aber ich **kann **jetzt nicht zum Chefe gehen und sagen: Ach sorry die letzten zwei Jahre warn für die Katz, ich fang nochmal von vorne an.

Ob das mit der mobilen Anwendung möglich ist muss ich noch klären, da diese noch nicht sehr weit fortgeschritten ist.
Die Funktionen und alle Schnittstellen die ich benötige habe ich ja schon fertig ausprogrammiert, müsste mich also nur noch um die Oberfläche kümmern.

Aber wenn ich so wenig wie möglich ServerControls nehme und den Rest statisch sollte es schon gehen, ViewState Hin oder Her.
Es gibt sogar fertige Vorlagen-Templates für das Visual Studio, also alles halb so wild.

Das Problem ist, daß es im Netz nichts gutes über MVC gibt, zumindest nicht viel deutsches. Und wenn man das in Englisch lernt, macht es das nicht einfacher.

27.10.2011 - 10:12 Uhr

Nun, was was ich bisher habe funktioniert einwandfrei, mit Ajax und allem Drum und Dran.

Die einzelnen jQuery Seiten und Buttons sind mit statischem HTML und die dynamischen Inhalte-welche vom Server kommen- sind eben ASP.NET Controls.
Hierbei dreht es sich lediglich um ein paar Felder, welche z.B. ein Ergebnis einer Abfrage anzeigen bzw. ein Dropdown welches dynamisch gefüllt werden muss.
So wenig wie möglich sind ASP.NET Controls und so viel wie möglich ist statisch.

Ich wüsste nicht wo es hier Probleme geben könnte...bitte um Aufklärung =)

27.10.2011 - 09:14 Uhr

Hallo Abt,
natürlich ist HTML5 die erste Wahl, darum arbeite ich ja auch mit jQueryMobile, welches in der Zwischenzeit sogar stable ist.

Die Oberfläche macht jQuery und die Funktionen im Hintergrund sind dann WebForms. Das geht nicht anders da die Funktionen schon vorhanden sind und ich keine Zeit habe jetzt auch noch MVC zu lernen auch wenn ich schon viel gutes darüber gehört habe.

Ich möchte hier eine saubere Mobile Webanwendung erstellen, welche mit HTML5 aka jQueryMobile prima realisierbar ist.

04.10.2011 - 09:54 Uhr

Dasselbe Problem hatte ich mit dem Ajax Toolkit, danke für die Lösung.

27.09.2011 - 12:02 Uhr

Vielen Dank, hat geholfen, war gerade schon am Verzweifeln...grrr.

16.08.2011 - 11:52 Uhr

Hallöle.

Also ich habe hier eine binäre Datei, für die ich keine Beschreibung habe.
Ich lese diese mit dem BinaryReader ein und bekomme lauter cryptische Zeichen.

Gehe im im Debugger auf HTMl-Ansicht, wird mir der eingelesene Stream als Text angezeigt, so ich ich es eigentlich haben möchte.

Wie kann ich das auf normalem Wege machen?

 FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);//Datei öffnen
            byte[] byteData = new byte[fs.Length];
            fs.Read(byteData,0, (int) fs.Length);
            fs.Close();
       

            System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
            string erg =  enc.GetString(byteData);

Edit: Das as ich so einlese sieht so aus:

02\0.\00\0/\S\0e\0r\0a\0t\0o\0 \0c\0r\0a\0t\0...usw

Das ist doch Hex oder?
Wenn ich das Ganze mit BigEndianUnicode kodiere, kann ich es fast lesen...sind noch ne Menge chinesischer Zeichen drin, teilweise wid es aber sichtbar...

Ok wie es scheint ist die Datei UTF 8 Kodiert:

 StreamReader reader = new StreamReader(path);

            Encoding enc = reader.CurrentEncoding; // == UTF8

Nur, wie kann ich das umwandeln?

05.08.2011 - 10:32 Uhr

Hey Mars.

Vielen Dank an Deinen Hinterkopf!
Habe es nun mit .gif versucht und damit geht es auf Anhieb auf dem XP Rechner.

Vielen Dank, das hätte ich sonst nicht so schnell herausgefunden!

Grüßle

05.08.2011 - 10:07 Uhr

Hallo Profis.

So, jetzt wirds ewas kompliziert.
Ich erstelle in meiner ASP.NET Anwendung auf einer Seite dynamische Grafiken, welche per HttpHandler erzeugt wird.

In der web.config habe ich dazu einen neuen Handler registriert:

<add verb="*" path=".tmbn" type="MEINPROJEKT.V5.thumbnails"></add>

D.h. also alle Images, welche per ImageUrl auf einen Pfad wie in meinem Fall

src=".tmbn/img=|0|0|1|5"

zugreifen, werden mit diesem handler dynamisch erzeugt.

Dieser Handler sieht u.a so aus:


public class thumbnails : IHttpHandler
    {
......

 public void ProcessRequest(HttpContext context)
        {
......

            int areaSize = 28;
            Color colVor = Color.FromArgb(rgbcolorVor);
            Color colNach = Color.FromArgb(rgbcolorNach);


            System.Drawing.Bitmap flag = new System.Drawing.Bitmap(areaSize, areaSize);

            Graphics graf = Graphics.FromImage(flag);
            graf.Clear(Color.White);           
            
            SolidBrush brushVor = new SolidBrush(Color.FromArgb(200,colVor));
            SolidBrush brushNach = new SolidBrush(Color.FromArgb(200, colNach));


            for (int x = 0, y = flag.Width - 1; x < flag.Height; ++x, --y)
                flag.SetPixel(y, x, Color.Gray);


            Point[] pNach = new Point[3];
            pNach[0] = new Point(0, areaSize);
            pNach[1] = new Point(areaSize, 0);
            pNach[2] = new Point(areaSize, areaSize);
            graf.FillPolygon(brushNach, pNach);

            Point[] pVor = new Point[3];
            pVor[0] = new Point(0, areaSize);
            pVor[1] = new Point(areaSize, 0);
            pVor[2] = new Point(0, 0);
           graf.FillPolygon(brushVor, pVor);
            


           graf.DrawString(Adds.KALENDERKUERZEL[vor] == "--" ? "" : Adds.KALENDERKUERZEL[vor], new Font("Arial", 8), new SolidBrush(Color.Black), 0, 0);
           graf.DrawString(Adds.KALENDERKUERZEL[nach] == "--" ? "" : Adds.KALENDERKUERZEL[nach], new Font("Arial", 8), new SolidBrush(Color.Black), 10, 15);

            context.Response.ContentType = "image/png";
            flag.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Png);

Ich denke das wichtigste ist die letzte Zeit in der die Grafik direkt in den Response geschrieben wird.

rgbcolorNach und rgbcolorVor sind integer, welche die Farben enthalten.

Das Ganze funktioniert auf einem Windows 7 Rechner einwandfrei, jedoch unter Windows XP überhaupt nicht.
D.h. die Grafiken werden nicht erzeugt und die Fehlermeldung lautet:

Fehlermeldung:
05.08.2011 09:52:13: Application_Error : Current Request File Path: ~/funktionen/.tmbn Exception: System.Runtime.InteropServices.ExternalException: Allgemeiner Fehler in GDI+.
bei System.Drawing.Image.Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams)
bei System.Drawing.Image.Save(Stream stream, ImageFormat format)
bei MEINPROJEKT.V5.thumbnails.ProcessRequest(HttpContext context) in E:\source\V5N\MEINPROJEKT.V5\MEINPROJEKT.WEB\thumbnails.cs:Zeile 171.
bei System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
bei System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
05.08.2011 09:52:13: Fehler-URL:
>
|0|52|0|1
Source: System.Drawing
Message: Allgemeiner Fehler in GDI+.
Stack trace: bei System.Drawing.Image.Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams)
bei System.Drawing.Image.Save(Stream stream, ImageFormat format)
bei MEINPROJEKT.V5.thumbnails.ProcessRequest(HttpContext context) in E:\source\V5N\MEINPROJEKT.V5\MEINPR.WEB\thumbnails.cs:Zeile 171.
bei System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
bei System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Current Request File Path: ~/funktionen/.tmbn

Woran könnte das liegen, daß es unter Windowx XP (SP3) nicht funktioniert ?
GDI+ ist doch standardmäßig mit intstalliert auf XP...

Danke und Grüße schuppsl

27.07.2011 - 15:43 Uhr

Uralt der Thread, aber gleiches Problem.

Ich habe es mit einem Benutzerdefinierten Steuerelement versucht, da ich beim Hotspot einen (gültigen) **onmouseover **benötige, den MS wohl irgendwie vergessen hat.

Mein Versuch bisher:



 public class myPoly : HotSpot
    {

        private string _onmouseover;
        private string _coords;
        private string _href;
        private string _title;
        private string _alt;
       
        /// <summary>
        /// Onmouseover Event
        /// </summary>
        public string onmouseover { get { return _onmouseover; } set { _onmouseover = value; } }

        /// <summary>
        /// Coords
        /// </summary>
        public string coods { get { return _coords; } set { _coords = value; } }

        /// <summary>
        /// HREF
        /// </summary>
        public string href { get { return _href; } set { _href = value; } }

        /// <summary>
        /// Title
        /// </summary>
        public string title { get { return _title; } set { _title = value; } }

        /// <summary>
        /// Alternative Text
        /// </summary>
        public string alt { get { return _alt; } set { _alt = value; } }



        public override string GetCoordinates()
        {
            return coods;
        }

        protected override string MarkupName
        {
            get { return "poly"; }
        }





        protected  void RenderContents(HtmlTextWriter writer)
        {
            string myWriter = String.Format("<area shape='{0}'" +
                                "coords='{1} '" +
                                "href='{2}'" +
                                "title='{3}'" +
                                "alt='{4}'" +
                                "onmouseover='{5}'", MarkupName, coods, href, title, alt, onmouseover
                                );
writer.Write(myWriter);
         

        }    


         
    }

Wäre ja alles schön und gut, aber RenderControls wird nicht aufgerufen,also kann ich auch nicht in das Steuerelement eingreifen.

Eigentlich bräuchte ich nur einen HotSpot mit zusätzlichem onmouseover.

Wie kann man das, außerhalb der o.G. Lösung noch machen, bzw. was ist an meinen Steuerelement oben falsch?
Ausgegeben wirds, nur ohnr onmouseover...

EDIT: also RenderContents gibt es beim HotSpot nicht.

21.07.2011 - 16:14 Uhr

Was sagt denn das Ausgabefenster?

21.07.2011 - 16:04 Uhr

Hallo Leute.

Es handelt sich um eine ASP.NET Anwendung.

Also ich zeichen ein Dreieck in einem graphics Objekt und würde gerne dieses als png oder sows abspeichern:



  Graphics graf = Graphics.FromImage(flag);
            graf.Clear(Color.White);
 Point[] p = new Point[3];
            p[0] = new Point(100, 200);
            p[1] = new Point(150, 100);
            p[2] = new Point(200, 200);
          
            graf.DrawPolygon(new Pen(Color.Red, 3), p);

Nur wie gehts jetzt weiter?
ich benötige eine Datei "meinedatei.jpg" die ich später ganz normal aufrufen kann....

Danke und Grüße schonmal

12.07.2011 - 11:41 Uhr

Hi, danke.
Leider diesselbe Fehlermeldung: > Fehlermeldung:

Syntaxfehler in UPDATE-Anweisung.

EDIT: habs herausgefunden.
STRING ist natürlich ein reserviertes Wort und darf nicht verwendet werden. 😦

EDIT: Ist eigentlich sinnvoll wenige Daten in einer DB zu speichern, oder sind da doch Textdateien sinnvoller?

12.07.2011 - 11:31 Uhr

verwendetes Datenbanksystem: Access (?)

Hallo,ich habe bisher alle Daten in Dateien zwischengespeichert und mache nun erste Versuche mit Datenbanken in meiner ASP.NET Anwendung.

Dazu habe ich einfach eine Access Tabelle angelegt und ins Projekt eingefügt.
(city.mdb)

Einiges Funktioniert schon, einiges aber auch nicht.
Meine Mini Tabelle sieht so aus:

Spalten: ID und STRING
und eine Reihe: FTDELTAGE(ID) und 100(STRING)

Also pubseinfach.

Jetzt steht also in der Reihe FTDELTAGE der Wert 100 drin.

Diesen Wert möchte ich nun ändern, per UPDATE Befehl, das sieht so aus:



 string neuBerTage= txtNeuBerTage.Text;

            try
            {
                OleDbConnection myConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|city.mdb");

                OleDbCommand myComm = new OleDbCommand("UPDATE city SET STRING=@neuBerTage WHERE ID=FTDELTAGE", myConn);
                        

                myConn.Open();
                myComm.ExecuteNonQuery();
                myConn.Close();
            }
            catch (Exception ex)
            {
                string gmess = ex.Message;
            }

Also der UPDATE Befehl lautet also:

UPDATE city SET STRING=@neuBerTage WHERE ID=FTDELTAGE

Die Fehlermeldung lautet: "Fehler im UPDATE Befehl."

Ich habe ihn schon tausendmal geändert und auch sogar auf meine Datenbank im www, per PHPmyAdmin die tabelle nachgebaut und den Befehl übernommen: Gleicher Fehler.

Was ist also an diesem simplen Befehl falsch?

Danke

08.06.2011 - 10:43 Uhr

Alles klaro, danke.

08.06.2011 - 10:32 Uhr

Alles klaro.

Wo kann man die Impelentierung ansehen?
Danke.

08.06.2011 - 10:09 Uhr

Ja wir reden vo asp.net.

IP Vergleichen bin ich auch schon drauf gekommen, bin aber überzeugt, daß es schon was "fertiges" gibt.
Danke, werde ich mal versuchen.

08.06.2011 - 09:17 Uhr

Hi, ich suche schon seit Stunden nach einer Möglichkeit festzustellen ob ich bei einer Anfrage auf dem localhost bin oder ob die Anfrage von einem Client kommt.
Naja, vielleicht war ich ja zu lange im Urlaub:-)

Wie kann ich das machen?
Danke

27.04.2011 - 12:10 Uhr

Danke.

21.04.2011 - 17:31 Uhr

DANKEEEEEEEE 👍 👍 👍

21.04.2011 - 15:18 Uhr

Hallöle.

Man eine Newbie Frage zu einem anderen Thema.
Ich bin ja sonst asp.net progger, muss aber für nen Kunden ein kleinen Windows.Forms Progrämschen bauen. Der Kollege ist im Urlaub, kann den also nicht fragen:-)

Also ich lese ganz einfach Daten aus einer Textdatei und liste diese in einer Windows Form in ein Listview.

Geht perfekt, sortieren geht auch schon.

Jetzt bin ich dabei nen Filter zu klöppeln, wo es noch hakt.
Also Textfeld und Button eingebaut, bei Klick auf den Button wird einfach die Itemkollection durchlaufen und festgestellt, ob der Suchtext irgendwio vorkommt.

Geht auch soweit.

Jetzt möchte ich das Ergebnis natürlich auch darstellen und vorher das Listview löschen um dann die gefilterten items einzufügen.

Das Clear geht, aber danach werden keine Daten mehr angezeigt.

also hier mal Quellcode:

 private void btnFilter_Click(object sender, EventArgs e)
        {

            ListView.ListViewItemCollection coll = new ListView.ListViewItemCollection(listBuchdat);
            coll = listBuchdat.Items;


            foreach (ListViewItem item in coll)
            {
               ListViewItem.ListViewSubItemCollection subColl = item.SubItems;
               ListViewItem.ListViewSubItem myItem = new ListViewItem.ListViewSubItem(item, txtFilter.Text);



               for (int i = 0; i < subColl.Count; i++)
               {
                   if (subColl[i].Text == txtFilter.Text) 
                   {
                       ListViewItem listItem = new ListViewItem(subColl[0].Text);   //Name
                       listItem.SubItems.Add(subColl[1].Text);                      //Ausweis
                       listItem.SubItems.Add(subColl[2].Text);                      //Datum  
                       listItem.SubItems.Add(subColl[3].Text);                      //Uhrzeit
                       listItem.SubItems.Add(subColl[4].Text);                      //Buchart
                       aItem.Add( listItem);
                   }
               } 
                
            }

           

        
            listBuchdat.Clear();
            UpdateListView();
             
        }


        private void UpdateListView()
        {
            ListViewItem[] items = (ListViewItem[])aItem.ToArray();
            listBuchdat.Items.AddRange(items);
            listBuchdat.Update();
        }

Also das aItem ist so definiert:

List<ListViewItem> aItem = new List<ListViewItem>();    

Ich speichere die Daten also zwischen und klopfe sie dann mit UpdateListView wieder rein.
vorher lösche ich das mit Clear().

Gelöscht wirds, aber die Daten kommen nicht wieder rein...
Ich habe noch einen anderen Button, der die Hauptfunktion aufruft die auch beim Start aufruft, die das Listview füllt.
Klicke ich diesen, werden die Daten immer und immer wieder eingetragen, was ja auch klar und gut so ist.
Mache ich vorher Clear() ist das Listview leer und wird nicht mehr mit Daten gefüllt.
Also irgendwas ist da mit Clear...

Was mache ich falsch?

19.04.2011 - 10:35 Uhr

Ja, ist ja eigentlich schon logisch.

Habe inzwischen eine .exe gebaut, welche ich per

     System.Diagnostics.Process.Start(pfad);

aufrufe und die den Server neu startet...funzt.

Grüßle

19.04.2011 - 09:37 Uhr

Hallo, mal wieder was spezielles.

In meiner ASP.NET Anwendung möchte ich dem Admin die Möglichkeit geben, den Webserver (cassini) neu zu starten.
Ich habe auch eine Windows Forms Anwendung mit der das einwandfrei funktioniert, nur mit der ASP.NET Anwendung nicht.

Der Dienst wird zwar beendet, aber nicht mehr neu gestartet.
Der einzige Unterschied zwischen der Forms und ASP Anwendung der mir einfällt ist, daß die Forms Anwendung als Administrator bzw. als User mit Admin Rechten ausgeführt wird.
Die ASP Anwendung ja nicht.

Trotzdem ist es seltsam, daß der Dienst trotzdem gestoppt wird, also denke ich mir, daß es nicht daran liegt.
Eher daran, daß die ASP Anwendung den Dienst einstellt, sobald der Webserver auf der sie läuft beendet wird.
Ist ja auch mehr als logisch, aber die Funktion zum Stop und Start sollte doch trotzdem noch ausgeführt werden, auch ohne Webserver...ist ja Codebehind und hat nichts mit der Oberfläche zu tun...

Hängt das doch so zusammen?

Schon, gell?

Wie kann man das dann lösen?

Hier der Code:


   public void RestartService(string serviceName, int timeoutMilliseconds)
     {         

         ServiceController service = new ServiceController(serviceName);
         try
         {
             int millisec1 = Environment.TickCount;
             TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
             clog.WriteLine("--Service hier", false);
             if (service.Status == ServiceControllerStatus.Running)
             {  
                 service.Stop();
               

                 service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);
      

             }


             // count the rest of the timeout
             int millisec2 = Environment.TickCount;
             timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds - (millisec2 - millisec1));

             service.Start();
             service.WaitForStatus(ServiceControllerStatus.Running, timeout);



         }
         catch (Exception ex)
         {

             // ...
             throw new Exception(ex.Message, ex.InnerException);
             
         }
     }


Edit: jetzt stimmt der Code

15.04.2011 - 11:03 Uhr

Hallöle.

Also jetzt stehe ich irgendwie gerade gewaltig auf dem Schlauch.

Ich teste gerade VS2010 EXPRESS und habe eine GlobalResource angelegt.
Aus dieser möchte ich nun ein paar Strings extrahiere, wie halt bisher auch:

Also Ordner APP_GlobalResources angelegt und darin eine Resourcendatei.

Codebehind z.B.

throw new Exception(Resources.error.MLD_clientIFSocketNotExists);

Dann das gemeckere:

Fehlermeldung:
Fehler 6 Der Name "Resources" ist im aktuellen Kontext nicht vorhanden.

Normalerweise kann ich damit ja schon etwas anfangen, aber hier irgendwie nicht.
warum kann ich nicht auf die Resourece zugreifen?
Mache ich dasselbe mit VS8 (Prof) geht das ohne Probleme...

liegts an der Express Version?

14.04.2011 - 09:51 Uhr

Hallöle.

Also ich spiele gerade mit dem Compiler herum (VS8) und möchte in Zukunft meine ASP.NET Anwendung vorkompiliert an den Kunden vergeben.

Das teste ich gerade und habe mir eine Batchdatei gebastelt, welche folgendermaßen die Anwendung kompiliert:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler -nologo -f -p E:\source\V5N\xxx.V5\xxx.WEB -v / E:\source\V5N\xx.V5\compout

Rufe ich die Anwendung mit dem IIS auf, dann geht es teilweise.
Es kommen aber ständig Fehlermeldungen, daß er irgendwas nicht finden kann, was eindeutig mit Javascript zusammenhängen muss.
Dann habe ich für ein spezielles Control im Ordner App_GlobalResources eine Datei Namens Schema.xml, welches er auch vermisst, wird also nicht mitkompiliert.

Ist ja auch klar, denn dieser Ordner wird ja nicht benötigt, trotzdem brauche ich diese Datei.(Die in diesem Ordner liegen muss)

Lege ich diesen an und kopiere die Schema.xml da rein kommt:> Fehlermeldung:

Das Verzeichnis /App_GlobalResources/ ist unzulässig, da die Anwendung vorkompiliert ist

Also irgendwas läuft da gründlich schief.
Jetzt ist die Frage, wie sinnvol das ganze Unterfangen generell ist und ob ich falsche Kommandozeilenparameter angegben habe o.ö.

Vielen Dank!

EDIT: Also es liegt definitiv an dieser XML Datei, die anscheinend im Ordner Globas_Resources liegt MUSS.
Liegt die da drin, kommen keine Fehlermeldungen.

Bei einer vorkompilierten Seite kann ich diesen Ordner aber nicht anlegen.
Kann man das irgendwie lösen?

EDIT: (Nr.482374):-)
Hat sich erledigt, ich kann den Pfad zu dieser Datei (natürlich) angeben.

Bitte schließen!