Meines Wissens musst du dir dazu wohl oder übel eine extra Tabelle anlegen, die du selbst befüllen musst. Also praktisch pro Minute einen Datensatz. Über den Assistenten lässt sich das glaube ich nur Tageweise erzeugen. Script schreiben, immer eine Minute raufzählen und dann ab damit in die Tabelle. Ich lasse mich aber gerne eines Besseren belehren.
Hallo,
ich möchte eine XML-Datei gegen ein Schema prüfen. Eigentlich würde ich das folgendermaßen machen:
bool bValid = true;
public bool ValidateXML(string PathToXml, string PathToSchema)
{
XmlReaderSettings xmlrsettings = new XmlReaderSettings();
xmlrsettings.ValidationType = ValidationType.Schema;
xmlrsettings.ValidationEventHandler += ValidatingError;
xmlrsettings.Schemas.Add(null, PathToSchema);
XmlReader xmlreader = XmlReader.Create(PathToXml, xmlrsettings);
try
{
while (xmlreader.Read())
{
}
}
catch(Exception ex)
{
Protokollierer.SchreibeLog(String.Format("FATAL ERROR in {0}: {1}", ex.Source, ex.Message), NachrichtenArt.Fehler, true);
}
finally
{
xmlreader.Close();
}
return bValid;
}
private void ValidatingError(object sender, ValidationEventArgs args)
{
if (args.Severity == XmlSeverityType.Error)
{
bValid = false;
}
}
Dadurch bekomme ich leider nur Fehler, wenn das Dokument nicht wohlgeformt ist. D.h. wenn falsche Elemente vorhanden sind passiert gar nichts. Ein Versuch mit dem XmlValidatingReader brachte das gewünschte Ergebnis.
XmlTextReader xmltr = XmlTextReader(PathToXml);
XmlValidatingReader xmlvr = XmlValidatingReader(xmltr);
xmlvr.ValidationType = ValidationType.Schema;
xmlvr.ValidationEventHandler += new ValidationEventHandler(ValidatingError);
while (xmlvr.Read()) ;
Der XmlValidatingReader wird aber leider als deprecated angemeckert. Von daher würde ich diesen auch nur ungern verwenden. Gibt es noch eine andere Möglichkeit die XML-Datei richtig gegen das Schema zu prüfen? Habe ich hier nur ein Verständnisproblem oder mache ich etwas falsch? Die schon existierenden Threads weichen leider ein Stück von meinem Problem ab.
Gruß
Feuerfalke
Mit HttpResponse solltest du da weiter kommen. Grob gesagt Daten aus der Datenbank holen, in die HttpResponse reinklopfen, ContentType festlegen und ab geht die Post. Google verrät dazu auch einiges.
Wie gesagt, mit Hilfe einer Datenbank sollte das Ganze am einfachsten und effektivsten umzusetzen sein. Ich verstehe nicht, wieso du es dir so schwer machen willst.
Original von Zebes
wozu hast du mich jetzt zitiert?
Sorry, nach erneutem Zitat ohne Text habe ich jetzt festgestellt, dass das mit dem WYSIWYG bei mir wohl irgendwie nicht klappt.
Ich hatte geschrieben, dass sowas wohl am Besten mit einer Datenbank zu Lösen wäre.
Original von Zebes
Hallo zusammen,gibt es eine möglichkeit den zustand eines webservices bei zu behalten?
also es ist ja so, das wenn ich eine webmethode aufrufe, der konstruktor des webservices aufgerufen wird. dh es wird eine neues objekt erzeugt.
was ich aber gerne hätte ist, dass ich genau einen webservice habe, also ein einziges object, das die ganze zeit existiert, damit ich daten speichern kann. zb wenn sich jemand an/ab meldet. wenn jemand eine nachricht hinterläßt und jemandem zusendet. wenn funktionen die ein user auslöst von einem anderem user bestätigt werden müssen usw.
wie würde man sowas normalerweise machen?
mfg
Zebes
Wäre gut, wenn du das entsprechende Stück Code posten könntest, um zu sehen, wie du vorgehst.
Hallo,
ich möcht mit meinem Programm eine Seite meines Routers aufrufen. Was er dann ausgibt ist mir relativ egal. Jedenfalls muss ich mich dazu mit Benutzername und Passwort Authentifizieren. Momentan würde ich das so machen:
HttpWebRequest hwrDebugEnable = (HttpWebRequest)WebRequest.Create(String.Format("http://{0}/setup.cgi?todo=debug", IP, Username, Password));
hwrDebugEnable.Credentials = new NetworkCredential("Username", "Password");
hwrDebugEnable.GetResponse();
Dabei bekomme ich aber folgende Exception
Der Server hat eine Protokollverletzung ausgeführt.. Section=ResponseHeader Detail=Auf CR muss LF folgen
Gibt da wirklich der Router Schwachsinn zurück oder liegt das an meinem Code?
Ich bin selbstverständlich auch für andere Methoden die Adresse aufzurufen offen.
Gruß
Michi
Hallo,
haste dir schon mal WCF angeschaut? Du würdest auf beiden Seiten einen ServiceHost erstellen und könntest dann wie von dir gewünscht die Methoden aufrufen. Falls du dich damit nicht auskennst und es mittlerweile immer noch keine vernünftigen Anleitungen/Dokus/Tutorials dazu gibt kannste ja hier mal schauen
http://www.michis-blog.de/2007/05/13/wcf-tutorial/
Danke, ich werd's mal ausprobieren, wenn ich daheim bin.
Sorry, aber ich versteh irgendwie nicht was das
While(StreamReader.Peek() != -1)
{
bla.ReadLine();
}
da bezwecken soll.
Hat sich grad so weit erledigt. Ein ReadToEnd() war die Lösung. Allerdings zeigt er mit erst das Ergebnis an wenn ich meinen Browser abbrechen lasse.
Hallo, ich hab mir ein kleines Programm gebastelt von dem ich mir erhofft hatte dass es mir wenn ich mit nem Browser auf den Port zugreife sehe, was der Browser sendet. Leider gibt er mit nur die Zahl 71 aus. Hier mal der Code:
using System;
using System.IO;
using System.Net.Sockets;
namespace Tcp_Listener
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
TcpListener listener = new TcpListener(8080);
Console.WriteLine("Listener initialisiert");
listener.Start();
Console.WriteLine("Listener gestartet");
Console.WriteLine("Warte auf Verbindung");
TcpClient c = listener.AcceptTcpClient();
Stream inOut = c.GetStream();
Console.WriteLine("Stream zum lesen und schreiben erstellt");
StreamReader sr = new StreamReader(c.GetStream());
Console.Write(sr.Read());
sr.Close();
c.Close();
listener.Stop();
Console.ReadLine();
}
}
}
Original von herbivore
Hallo Taubenschreck,auch noch Ansprüche stellen. 🙂 Hattest du denn schonmal im Forum nach Crypt gesucht?
herbivore
In dem Thread geht es aber um Perl. Und der Link im Thread führt zu einer Seite auf der es um ASP geht, wenn ich das richtig gesen habe. Ich denke also nicht dass mir das weiterhilft.
Original von herbivore
Aber du kannst natürlich auch einfach htpasswd.exe per Process.Start verwenden.
Genau das will ich nicht.
Original von herbivore
Hallo Taubenschreck,unter Windows verwendet .htaccess defaultmäßig MD5 und nicht Crypt.
Siehe: System.Security.Cryptography.MD5
herbivore
Der Server rennt aber auf Linux. Also wird's wohl doch Crypt sein.
Also wie mache ich das dann jetz am dümmsten?
Original von nitronic
Symmetisch oder Asymmetrisch?
Ähm was bitte? Es sollte dann so sein dass man den verschlüsselten string der rauskommt für eine .htpasswd datei verwenden kann.
Danke schon mal für den Link.
Hallo,
ich würde gerne eine String mit Crypt verschlüsseln. Leider habe ich bisher nirgends was vernünftiges darüber gefunden. Kann mit jemand von euch sagen wie das geht? Der Code sollte ziemlich einfach sein und wenn möglich ohne noch irgendwelche Fremd-DLLs einzubinden. Sollte es aber einfacher sein eine Fremd-DLL einzubinden ist mir diese Lösung dann lieber.
Ok, nach ein bisschen rumprobieren habe ich das auch geschafft. Damit funktioniert es einwandfrei.
Bin jetzt gerade dabei den von MySql zu nehmen. Im Moment macht mir nur der Connectionstring Probleme.
Hallo,
ich habe ein kleines Programm gebastelt, das aus einer Datenbank verschiedene Sachen ausliest. Wenn der Typ von einem Feld auf VARCHAR steht gibt das Programm alles korrekt aus. Steht er aber auf Text gibt er "system.byte[]" aus. Ich hole das Ganze folgendermaßen aus aus der Datenbank:
conn.Open();
string sqlcommand;
sqlcommand = "SELECT * FROM voggnet_kunden WHERE id=" + i;
MySQLCommand cmd = new MySQLCommand(sqlcommand,conn);
MySQLDataReader read = cmd.ExecuteReaderEx();
read.Read();
textBox1.Text = read[1].ToString();
textBox2.Text = read[2].ToString();
textBox3.Text = read[3].ToString();
textBox4.Text = read[4].ToString();
read.Close();
conn.Close();
An was liegt das?
Oh, sorry, hab nicht gewusst, dass es da extra was gibt.
wie währ's mit button.enabled = true/false??
Hier das Beispiel dazu.
Und der Code:
private void button1_Click(object sender, System.EventArgs e)
{
button1.Enabled = false;
button2.Enabled = true;
}
private void button2_Click(object sender, System.EventArgs e)
{
button1.Enabled = true;
button2.Enabled = false;
}
Währe schön, wenn jemand ne Antwort hätte.
Ich liefer am besten mal den Code dazu.
Ich mache das ganze so:
MySQLDataReader read = cmd.ExecuteReaderEx();
read.Read();
textBox4.Text = read[4].ToString();
Hallo,
ich habe mit ein kleines Programm gebastelt, das Sachen aus einer MySQL-Datenbank ausliest. Jetz habe ich aber das Problem, dass er, wenn der Typ auf text ist in meiner Textbox System.Byte[] anzeigt. Mit varchar geht alles problemlos. An was liegt das?
Es gibt keinen. Ich find's anders nur schöner. Außerdem kann ich, wenn ich es in einem Programm mach noch kleine Extras reinbasteln. Wenn ich das Programm einfach den Befehl "net use x: \192.168.1.4\homes" ausführen lasse müsste es aber eigentlich auch passen. Aber wie übergebe ich dann meine Logindaten an das Teil? Jedes mal neu eungeben is ja auch nicht der Sinn der Sache. Außerdem weis ich nicht, wie Windows darauf reagiert, wenn der Server mal aus ist. Ich hab mir das halt so gedacht.
wenn der server an ist (evtl. durch anpingen o.Ä. checken)
dann net use x: \192.168.1.4\homes\
sonst MessageBox ......
Windows ist ja anscheinend zu blöd das selber einfach zu checken und es zu lassen, wenn der Server nicht antwortet.
Das hab ich shcon gemacht und geht auch. Dann wird es aber als Netzlaufwerk angezeigt. Bei mir in der Arbeit is es aber so, dass es richtig als Festplatte angezeigt wird. Auch wenn's ohne Programm geht würd ich's trotzdem gerne so lösen.
Hallo,
ich möchte mein Homeverzeichnis auf meinem Server (Pfad: \192.168.1.4\homes) bei mir am PC als Laufwerk einbinden. Dazu möchte ich mir ein Program in C# schreiben. Ist das überhaupt möglich? Wenn ja, hätte da jemand irgendwelche Anhaltspunkte dazu für mich?