Die Klasse Service erbt von IService. Dort wird die Methode bereitgestellt.
Was mich gewundert hatte, war dass es mit HTTP-Request funktioniert hatte.
Gibt es eine alternative Möglichkeit, wenn ich nicht auf den aktuellen Kontext zugreifen kann?
Hi,
ich habe eine Service geschrieben, der Post-Nachrichten loggt, die er als POST-Request erhält.
Zunächst wurde das ganze für HTTP erstellt. Das hatte auch ohne Probleme funktioniert.
Nun sollte das ganze auf HTTPS umgestellt werden, was zum Teil auch funktioniert.
Die Request wird erhalten und der body kann ausgelesen werden. Allerdings ist HttpContext.Current null.
Zuerst hatte ich gedacht, dass es daran liegt, dass es eine HTTPS-POST-Request ist. Alerddings existieren im Web einige Beispiele bei denen HttpContext.Current ebenfalls für HTTPS verwendet wird.
Nun habe ich leider keinen Ansatz mehr, woran es liegen könnte. Liegt es an der .config oder eventuell an den Einstellungen von IIS?
An den IIS Einstellungen hatte ich kaum was geändert. Ich hatte ein Zertifikat erstellt und eine Bindung für HTTPS hinzugefügt.
Web.config sieht wie folgt aus:
Hab ich es falsch verstanden?
Dachte du hast die Punkte der Linien als Koordinaten mit x und y gegeben.
Die Linien erstellst du im Paint-Event des Charts.
Als Größe kannst du ja die Koordinaten nehmen, wennd ie zu nah zusammen liegen würde ich eine einfache Umrechnung (x10,x100 etc) nehmen, sodass das verhältnis gegeben ist.
Solange die Beschriftung passt...
Ob es für HTML etwas eigenes gibt weiß ich nicht, aber wennd u den ganzen Text einlesen willst würde ich mit Regex suchen. Da bietet .Net auch schon Klassen an. Du musst lediglich den Text, der durchsucht werden soll angeben und dein Regexmuster. Regex-Tutorial
Zuerst musst du mit GraphicsPath deine Linien hinzufügen.
Beachte, dass wenn du mehrere Linien hintereinander hinzufügst und keine Verbindung zwischen der letzten Linie und der neuen Linie besteht automatisch eine gezeichnet wird.
Dann muss du nur noch den Pfad füllen.
Ich glaube dir fehlen hier gerade die grundlegendten Grundlagen.
Wie Th59 schon gesagt hat musst du deinen string mit "+="
also
anzahl += "jhk";
Dein Problem sollte noch sein, dass du die Variable jedes mal neu erstellst.
Wieso zählst du einen Zähler hoch, wenn du die Anzahl doch mit "lstbx.Items.Count" ermitteln kannst?
Und wieso konvertiert du eine Zahl, die dir Count zurück gibt in einen String um den String in eine Zahl zu wandeln?
Danke für die Antwort.
Auch bevor ich auf die Form-Eigenschaft zugreife wurde der Stream bereits gelesen.
Er wurde gelesen sobald ich in der Methode bin, auch wenn ich noch keinen Code aufgerufen habe.
Habe die Lösung gefunden:
Man muss der Methode einfach nur einen Stream als PArameter übergeben. Dieser Stream enthält dann die Daten.
Hi,
ich komme mal wieder nicht weiter.
Ich versuche aktuell einen Service zu schreiben, welcher auf POST-Request horcht.
So weit so gut. Die Entsprechende Methode, funktioniert auch wie geplant, wird also nur aufgerufen, sollte ein POST-Request gesenet werden.
Dann versuche ich die Request auszulesen und daran scheitere ich aktuell.
So hole ich mir die aktuelle Request:
Die Request sende ich aktuell mit Postman, einer App für Chrome.
Die Daten der Request versuche ich wie folgt auszulesen:
string header = "", form ="", param = "";
foreach(string s in request.Headers.AllKeys )
{
header += s + "=" + request.Headers[s] + System.Environment.NewLine;
}
foreach( string s in request.Form.AllKeys )
{
form += s + "=" + request.Form[s] + System.Environment.NewLine;
}
foreach( string s in request.Params.AllKeys )
{
param += s + "=" + request.Params[s] + System.Environment.NewLine;
}
Die Daten die dort enthalten sind, sind allerdings nicht die Daten, welche ich auslesen möchte.
Testweise habe ich eine Konsolenanwendung geschrieben, die mit dem HttpListener auf eine Request wartet und da konnte ich die Request auslesen:
Dies funktioniert leider nicht, da der Stream von HttpRequest bereits gelesen wurde.
Ich hatte mal geschaut, wie man diesen Stream mehrfach lesen kann. Dabei habe ich zwei Möglichkeiten gefunden:
1. Setzte die Position zurück --> wirft allerdings eine HttpException :
Fehler
Diese Methode oder Eigenschaft wird nach dem Aufrufen von HttpRequest.GetBufferlessInputStream nicht unterstützt.
2. Kopiere den Stream vor dem Lesen in einen MemoryStream --> Sobald ich die Methode erreiche ist der Stream aber schon gelesen, was ich mit "ReadEntityBodyMode" bereits geprüft habe.
Hat jemand eine Idee was ich machen könnte oder habe ich einen Denkfehler/ein Verständnisproblem?
Danke schon mal im vorraus und viele Grüße
Sry bin gerade verwirrt.
Du sagst dass MS das mit den lokalen DBs gernemacht ich aber einen echten Server nehmen soll.
Was haben die Datenbanken mit dem Server zu tun?
Hi ich habe mal wieder ein Problem.
Ich habe meine Anwendung auf einen Server gezogen und einen Anwendungspool erstellt.
Soweit so gut.
Bis ich eine Datenbankabfrage benötige. Dann erscheint folgender Fehler
Fehler
[SqlException (0x80131904): Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server. Der Server wurde nicht gefunden, oder auf ihn kann nicht zugegriffen werden. Überprüfen Sie, ob der Instanzname richtig ist und ob SQL Server Remoteverbindungen zulässt. (provider: SQL Network Interfaces, error: 52 - Es konnte keine Installation der Local Database Runtime gefunden werden. Überprüfen Sie, ob SQL Server Express richtig installiert und die Funktion Local Database Runtime aktiviert ist.)]
Was habe ich bereits getan?
SQL Server Express installiert
Local Database Runtime installiert
TCP/IP installiert
Den connection String überprüft
Die Datenbank ist vorhanden (siehe Anhang)
Außerdem habe ich die Berechtigungen überprüft (siehe Anhang).
Der Aufbau der Ordner ist genau wie bei mir Lokal.... und da funktioniert alles einwandfrei.
Jetzt weiß ich nicht was es noch sein könnte habt ihr eine Idee?
Danke für die Antwort.
Schade dass es nicht geht.
Mir ist nur noch aufgefallen dass ich "data:image/jpeg" und nicht "data:image/mjpeg" angegeben habve. Das ändert aber auch nichts.
Hi,
ich habe eine Webapplikation die sich im C#.Code einen string zusammenbaut, welcher die Quelle eines Bildes darstellt.
Dies sah bisher so aus:
public string SrcStringForCamera
{
get
{
return String.Format( "http://" + this.CameraIP + "/nphMotionJpeg?Resolution=320x240&Quality=Standard" );
}
}
Für Firefox und Chrome ist das einbinden auch kein Problem.
Allerdings wird der Stream nicht für IE angezeigt. Nun habe ich im Internet gelesen, dass es dran liegt, dass das Bild zu base64 konvertiert werden müsse.
Dazu habe ich auch einige Sachen versucht. Mit verschiedenene Encodings usw.
Mein Ansatz sieht wie folgt aus, allderdings bekomme ich keinen verwertabren String, denn wenn ich es so mache, wird das Bild in keinem Browser mehr angezeigt.
Ich weiß ja dass er reinspringt, mich hatte nur gewundert wieso.
Aber egal. Ich habe jetzt den Razor Code von Java Code getrennt, jetzt gibt es an einer anderen Stelle noch ein paar Verständnisprobleme, aber mal sehen, ob ich das so hin bekomme.
Ok, hatte mir zwar schon mehrere Sachen angeschaut, aber anscheinend immer noch nicht verstanden.
Danke schon mal.
Habe eben mal geschaut, was im Code der Website
if(!(GateControl.Models.GatesModel == null))
{
}
Aber dann ist es doch immer noch komisch, dass in die if gesprungen wird oder?
Wenn aus
Zitat von Mr. Sparkle
if (@ViewData.Model == null) sowas wie if (null == null)
wird, dann dürfte da doch auch nicht reingesprungen werden oder?
null == null = true, negiert ergibt es dann also false...
Also mein Ziel ist es den Benutzer automatisch auszuleggen, wenn das Fenster geschlossen wird.
Dies habe ich, da es mehrere Views geben kann im Layout gemacht, damit es für alle Views gilt.
Problem ist, dabei jetzt aber, dass der Benutzer auch ausgeloggt wird, wenn er sich einlogt, da das Event ebenfalls aufgerufen wird. Auch wenn er auf einen Button klickt, der eine Action in einem Controller ausführt. Aus diesem Grund setzte ich beim klicken auf einen Button die Property auf true, andernfalls auf false.
Da das Model allerdings auch null sein kann, zum Beispiel, wenn ich mich auf der Login Seite befinde möchte ich prüfen, ob es null ist und den Benutzer nur dann auslogen.
Das Problem ist, dass in den if-Block gesprungen wird, obwohl Model null ist. Und ich verstehe nicht wieso.
Auch wenn ich nur Model, verwende ist es weiterhin null und das Problem mit der if-Abfrage bleibt bestehen.
Hallo liebes Forum,
ich fange gerade an mir selbst zu zweifeln.
Ich bin an eriner Asp.Net MVC Applikation.
In eriner View wird bei einem onclick event geprüft, ob ein Button gedrückt wurde oder nicht.
In der LAyoutView habe ich ein onbeforeunload Event erstellt, welches den Benutzer ausloggen soll, falls er eingeloggt ist. Dies funktioniert an sich gut, allerdings wird er auch ausgeloggt, sollte der Benutzer auf einen Button drücken.
Aus diesem Grund möchte ich anhand einer Variable in einem Model überprüfen, ob ein Benutzer eingelogt wurde oder nicht.
Das PRoblem ist, dass der Benutzer auch nicht eingelogt sein kann und das Model dann null ist.
Aus diesem Grund versuche ich mit einer if zu überprüfen ob das Modell null ist.
Habe bereits auch versucht das ganze auf undefined zu prüfen hatte statt "!(@ViewData.Model == null)" "(@ViewData.Model != null)" versucht. Allerdings springt das script in den if-Block, und wirft da logischerweise eine NullReferenceException.
Bin ich gerade einfach zu blöd etwas offensichtliches zu sehen?
Den Ansatz hattest Du mit den HTML-Helpern; jetzt kommst Du aber plötzlich mit Client Binding an.
Dachte dass ich der View ja irgendwie mitteilen muss, was sie anzeigen soll.
Leider fehlt hier das Smiley, welches sich auf den Tisch haut...
Was ein dummer Fehler. Ich hab in meinem Controller die View einfach so zurückgegeben.
Dadurch kannte die View das Model nicht und konnte dann halt dementsprechend auch nicht die Daten anzeigen...
Wie meinst du das?
Was es für eine Anwendung werden soll?
Der User soll Tore steuern können. Aus diesem Grund soll pro Tor zwei Buttons geben (Öffnen und Schließen). In einer TextBox soll der Status des Tores angezeigt werden und damit habe ich aktuell propleme.
Ich dachte, da ich es in den Views versuche bin ich auf der Client Seite, oder habe ich da was falsch verstanden?
Die erste Textbox erkennt den string auch als string an und nicht als DataBinding, also stehtd er Lambda-Ausdruck in der Textbox.
Bei der zweiten Textbox erscheint kein Text in der TextBox, ich dachte da würde "Status" erscheinen. Wenn das geklappt hätte hätte ich versucht den Wert der Property abzurufen.
Hi,
ich versuche aktuell ein Projekt in ASP.NET MVC umzusetzen.
Nun versuche ich eine Read-Only TextBox zu erzeugen. Das hat auch schon geklappt.
Allerdings wird der Wert der Property nicht daran gebunden, wie ich es mir erhofft habe.
So erstelle ich die TextBox:
@Html.TextBoxFor( model => model.Gates[0].Status, null, new { @class = "text-box single-line readonly", @readonly = "readonly", disabled = "disabled" } )
Mein Model sieht wie folgt aus:
Ja die Liste macht aktuell noch nicht wirklich sinn, da ich aktuell erst mal nur die Benutzeroberfläche aufbaue und die Logik nur Testdaten zurückgeben lasse.
public class GatesModel
{
public List<Gate> Gates{
get
{
return new List<Gate>(){
new Gate("XX.XX.XX.XX")
};
}
}
}
Die Property Status von Gate liefert lediglich einen Enumwert zurück.
Meine Fragen sind nun:
1.Wie schaffe ich es, dass der Wert des ersten Gates automatisch an die Textbox gebunden wird.
2.Ist es möglich die Property in einem bestimtmen Zeitraum wieder zu überprüfen, dass die Textbox sich automatisch aktualisiert?
Es gibt meiner Meinung nach zwei Möglichkeiten:
1. Du befindest dich aus irgendeinem Grund bereits am Ende.
2. Dein Stream ist leer. Vielleicht ist der Prozess noch nicht durchgelaufen und hat deshalb keinen Output? Was sagt der Debugger an der Stelle?
Lies dir den Artikel von Jamikus durch, debugge und schaue, ob in die if gesprungen wird. Wenn ja liegt es an Focus. Dann würde ich mal eine andere MEthode versuchen
Danke für die Antwort.
Ich dachte das würde ich mit
EventLog.CreateEventSource(source, logName );
machen. Oder habe ich da etwas falsch verstanden?
Leider habe ich deine Antwort zu spät gelesen und mir mittlerweile ein Workarround gebastelt.
Für alle die es interresiert:
Ich habe eine Klasse LogProvider. Diese enthält verschiedene ILoger. Je nachdem ob in einen Filegeloggt werden soll oder eine Email gesendet werden soll. Für jeden dieser Logger haber ich eine getter Methode.
Diese war vorher public und ich habe sie aus anderen Klassen aufgerufen um ein ILog zu bekommen und dann zu loggen. Die getter sind nun private. Ich habe protected Methoden für die jeweiligen Level des loggens erstellt. Diesen übergebe ich zusätzlich zur Nachricht noch ein eigenes Enum um zu wissen, welchen Logger ich benötige.
Hier mal ein auszug aus dem Code:
Um dich mit LINQ-Abfragen zu beschäftigen würd eich dir das openbook vom ehemaligen Verlag GalileoComputing (mittlerwiel Rehinwekr Computing) empfehlen.
Um deine LINQ-Filter dynamisch zu generieren finde ich den Artikel Build Where Clause Dynamically in Linq gut.
Naja zum Beispiel kannst du deinen Code ja mit Visual Studio kompilieren. Da brauchst du keinen extra Code schreiben.
Von VS gibt es die Express-Version, die wenn ich mich nicht irre kostenlos ist.