Laden...

Forenbeiträge von Larsen Ingesamt 192 Beiträge

27.09.2016 - 14:18 Uhr

DANKE Abt!!!!

Mit dem XmlTextWriter hab ich's endlich hinbekommen !!!

Jetzt ist auch das original Prog wieder zufrieden mit dem geänderten File 😃

Für die es interessant ist, das sieht jetzt so aus:


XElement MyXML = XElement.Load(@"p:\Name.xml");

...Modifizierung im XElement....

XmlTextWriter MyWriter = new XmlTextWriter(@"p:\Name_New.xml", null);
MyWriter.QuoteChar = (char)39;
MyWriter.Formatting = Formatting.Indented;
MyXML.Save(MyWriter);
MyWriter.Flush();


Gruß
Lars

27.09.2016 - 09:03 Uhr

Nee, das wieder hinzu zu fügen wäre nicht das Problem 😃 Das würde ich notfalls noch manuell machen 😃

Aber der macht in meinem neuen xml File überall aus ' -> "

Ich gebe zu, das war etwas verwirrend beschrieben.

New -> <?xml version="1.0" encoding="utf-8"?>
Old -> <?xml version='1.0' encoding='utf-8' standalone='no'?>

Hier geht's mir weniger um das fehlende "standalone='no'" als um die Formatänderung ' -> "
Im kompletten File wurde dieses Zeichen ' gegen " ausgetauscht.

In dem Tool, das die Daten weiter verarbeitet scheint das akzeptiert zu werden, aber das original Tool weigert sich das geänderte File wieder einzulesen.

Bin mir aber noch nicht ganz sicher, ob das vielleicht noch an etwas anderem liegt, wollte aber die Formatänderung schon mal ausschließen.

27.09.2016 - 08:37 Uhr

Danke Abt und gfoidl,

für die schnellen Antworten. Irgendwas mache ich aber noch falsch.

Habe beide Varianten (XDocument und xmlWriter) ausprobiert und bekomme bei beiden eine Ersetzung von ' -> "

Ich will in dem "original" XML nur ein paar Werte ändern muss aber dafür die Elemente suchen,
das ging mit XElement oder wahrscheinlich auch XDocument sehr bequem. Nutzt mir aber nichts,
wenn das Format geändert wird.

Habt ihr vielleicht eine andere Idee, wie ich das am besten mache? Das File sollte möglichst nicht seine ursprüngliche Form verlieren, da das dahinter liegende Tool sonst rumzickt.

Gruß
Lars

26.09.2016 - 18:09 Uhr

Hallo,

ich versuche gerade ein xml File inhaltlich zu veränder.

Dafür lese ich das File in ein XElement ein.


XElement MyXML = XElement.Load(@"p:\Name.xml");
MyXML.Save(@"p:\Name_New.xml");

und speichere es später mit .Save unter neuem Name ab.

Wenn ich die beider Files jetzt aber vergleiche auch ohne das ich was geändert habe, ist aus jedem ' ein " geworden.
z.B.:
New -> <?xml version="1.0" encoding="utf-8"?>
Old -> <?xml version='1.0' encoding='utf-8' standalone='no'?>

Kann ich irgendwie einstellen, dass das Format 1:1 übernommen wird?
Geht das überhaupt?

Gruß
Lars

04.04.2016 - 16:03 Uhr

Da hast du natürlich Recht, das muss ich mir noch mal gesondert überlegen, was das Thema Sicherheit angeht. Danke für den Denkanstoß.

04.04.2016 - 15:39 Uhr

UUUUAAAAAAAAAAAAAAAAAHHHHHHHHHHH

Sarc, du hast natürlich RECHT !!!!!!!!

Dass ich das nicht gesehen habe 😦

Aber da waren Bäume und der Wald , du weißt schon 😃

Ist ja peinlich, aber trotzdem vielen Dank. Ich hab die Fehlermeldung einfach falsch interpretiert.

VIELEN DANK und Gruß

04.04.2016 - 15:25 Uhr

Hallo zusammen,

ich habe folgendes Problem.
Ich möchte zur Laufzeit ein Stückchen Code kompilieren und eine Methode daraus ausführen. Dafür gibt es auch ein paar gute Beispiele im Netz , die auf den ersten Schuss auch ganz gut funktionieren. Nur wenn ich in meiner Funktion eine Konvertierung von einem Datentype machen will kommt es zur Fehlermeldung.

Mein Code sieht bislang so aus...


CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp");
CompilerParameters parameters = new CompilerParameters();
parameters.GenerateInMemory = true;
parameters.ReferencedAssemblies.Add("System.dll");
parameters.CompilerOptions = "/t:library";

StringBuilder sb = new StringBuilder();
sb.AppendLine(@"using System;");
sb.AppendLine(@"    public class FlexConverter{");
sb.AppendLine(@"        public object Convert(object oVal){");
sb.AppendLine("             object A=Convert.ToInt32(oVal);");
//sb.AppendLine("            object A=\"Hallo\";");
sb.AppendLine(@"            return A;");
sb.AppendLine(@"        }");
sb.AppendLine(@"    }");

CompilerResults result = provider.CompileAssemblyFromSource(parameters, sb.ToString());
if (!result.Errors.HasErrors)
{
object instance = result.CompiledAssembly.CreateInstance("FlexConverter");
MethodInfo info = instance.GetType().GetMethod("Convert");
OutputVal=info.Invoke(instance, new object[] { oVal });
}

oVal ist in meinem Test = "1234"
Wenn ich die Zeile "object A=&quot;Hallo&quot;;" einbinde statt der Zeile mit der Konvertierung funktioniert alles wie gewünscht.
Mit der Konvertierung bekomme ich folgende Fehlermeldung vom Compiler:
error CS0119: 'FlexConverter.Convert(object)' ist 'Methode' und im angegebenen Kontext nicht gültig.}

Also kurzum, benutze ich die Convert Funktion im dynamischen Code wird der Code nicht mehr Compiliert.

Fehlt mir hier eine Using Anweisung oder was mache ich da falsch?
Hat das eventuell damit zu tun, dass das ganze Konstrukt schon in einer DLL läuft? Bin im moemt etwas Ratlos.

Freue mich über Tips und Hinweise 😃

Gruß
Lars

22.10.2015 - 11:12 Uhr

OK,

habe durch diese Beschreibung: einen anderen Ansatz gefunden.
VariantWrapper Class


byte[] baData = new byte[3] { 1, 2, 3 };
object var = new System.Runtime.InteropServices.VariantWrapper(baData);
Ret = MyDiag.DiagWriteDataByIdentifier((ushort)ID, ref var);

Damit bekomme ich schon mal keine Laufzeitfehlermeldung mehr.

Leider kommt aber nicht 1,2,3 in der Methode an, sondern D5, D5, D5.
Vielleicht Zufallswerte von Stack?
Edit: Die D5 könnte auch ein "falscher" Zugriff in der Methode sein. Also scheint der Aufruf so erst mal zu funktionieren !!!! 😃 !!!!

Bin dankbar für Hinweise 😃

Gruß

22.10.2015 - 10:08 Uhr

Hallo Experten,

ich habe folgendes Problem und komme nicht weiter.
Über Google und die Suche im Forum war ich bislang erfolglos. (Ich hoffe ich hab' nicht nur vorbei gesucht 😃)

Ich habe in meinem Projekt einen Verweis aus den COM Schnittstellen eingebunden, der mir eine Klasse anbietet, die in C++ realisert wurde.

Dort gibt es mitunter zwei Methoden, die ich versuche aufzurufen.

dynamic GetData(ref object pvarArray) -> ich kriege Daten von der Methode
bool WriteData(ushort usIdentifier, ref object pvarArray) -> ich übergebe Daten zur weiterverarbeitung.
(pvarArray ist in beiden Fällen ein Pointer auf ein Byte Array=Daten.)

Der Aufruf der GetData Metode funktioniert in dieser Form. Warum das nur so funktioniert habe ich auch noch nicht verstanden und diesen Ansatz nur "ergoogelt"


byte[] baData = null;
dynamic Variant = baData;
MyObject.GetData( ref Variant);

Den Aufruf der Write Methode kriege ich nicht ans laufen. Der folgende Ansatz läßt sich zwar compillieren, verursacht aber die unten benannte Laufzeitfehlermeldung.


byte[] baData = new byte[3] { 1, 2, 3 };
dynamic Variant = baData;
Ret = MyObject.WriteData((ushort)25,ref Variant);

Fehlermeldung:
Eine nicht behandelte Ausnahme des Typs "System.Runtime.InteropServices.COMException" ist in mscorlib.dll aufgetreten.
Zusätzliche Informationen: Typkonflikt. (Ausnahme von HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))

Wie muss ich das richtig machen ?

Gruß
Lars

PS: entschuldigt die vielleicht nicht immer richtigen Begrifflichkeiten der Beschreibung 😃

Nachtrag: Ich arbeite mit VS Express 2012 und Windows7

07.09.2015 - 09:22 Uhr

Hab´s mir noch mal als Verlauf angesehen, der Titel ist nachträglich, nachdem schon ein paar Antworten da waren, geändert worden.
Also ist auch meine Beschreibung des Problems so interpretiert worden 😃. Was mal wieder zeigt, dass es zwischen Sender und Empfänger von Nachrichten erhebliche Probleme geben kann, wenn der Sender sich nicht korrekt ausdrückt 😃

Werde demnächst versuchen, das klarer auf den Punkt zu bringen !!!

07.09.2015 - 09:08 Uhr

Huch,

hab ich jetzt erst bemerkt, wer hat denn den Titel des Eintrags geändert?

Entspricht so gar nicht der ursprünglichen Fragestellung. Die Kinder sind ja nicht vom gleichen Typ wie der Parent.

Ich möchte das Thema nicht wieder aufwärmen, da schon sehr gute Antworten dabei sind. Aber die Antworten beziehen sich dadurch auf eine ganz andere Fragestellung 😦

Gruß
Lars

edit: Ach so, hab´s jetzt gesehen, die Frage war wohl nicht gut gestellt. Aber wie soll man eine Designfrage im Titel beschreiben, wenn das Problem nicht in einem Satz erklärt ist? So ist die Frage aber nicht richtig interpretiert worden.

Ich lassen den Titel jetzt so stehen, da er zu den Antworten passt.

04.09.2015 - 16:46 Uhr

Danke für die Tips, das mit dem using... werde ich direkt an manchen stellen in meinem Code einsetzen können, das wußte ich bislang nicht.
Das mit den Testklassen kann ich auch nur bestätigen 😃 es sammelt sich ein ganz schöner Wildwuchs an 😃

Hatte übrigens vergessen zu erwähnen, dass die Fehlermeldung in dieser Zeile geworfen wird.

System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(Cat1.GetType());

Wie dem auch sei, ich glaube mir fehlen an diversen Stellen noch viele Grundlagen. Ein Embedded C-Gehirn muss sich schon ganz schön verbiegen um in die OOP Welt zu passen 😃

Ich werde mich mal etwas mehr mit den Entwurfsmustern beschäftigen...

04.09.2015 - 16:00 Uhr

@witte: hab´s durch gelesen, sehr interessant.

@LaTino: Ich glaube, jetzt hab ich´s langsam kapiert. Das scheint mir sehr flexibel.

Ich hab jetzt mal ausprobiert, ob ich das serialisiert kriege: Leider gibt´s da eine Fehlermeldung

Eine nicht behandelte Ausnahme des Typs "System.InvalidOperationException" ist in System.Xml.dll aufgetreten.
Zusätzliche Informationen: Fehler beim Reflektieren des Typs 'ConsoleApplication6.Program.ExampleCategory'.


static void Main(string[] args)
        {
            ExampleCategory Cat1 = new ExampleCategory("Main1");
            ExampleCategory Cat11 = new ExampleCategory("Sub1");
            ExampleCategory Cat12 = new ExampleCategory("Sub2");
            ExampleCategory Cat13 = new ExampleCategory("Sub3");
            Cat1.AddChild(Cat11);
            Cat1.AddChild(Cat12);
            Cat1.AddChild(Cat13);

            System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(Cat1.GetType());
            string FileName = @"..\..\..\GenPath\Test.xml";
            System.IO.Stream stream = new System.IO.FileStream(FileName, System.IO.FileMode.Create);
            x.Serialize(stream, Cat1);
            stream.Close();
        }
04.09.2015 - 11:39 Uhr

@LaTino:Bei der Umsetzung in Richtung Generik stimme ich dir voll und ganz zu, da denke ich dann drüber nach, wenn ich die Typisierte variante verstanden habe.

Bei mir klemmt noch etwas bei der Überlegung, dass ich ja meine Kategorien nicht unbedingt zur Laufzeit, sonder zur Compilezeit festlegen kann.
Bei diesem Ansatz hier, baue ich je meine Kategorien zur Laufzeit zusammen.
Ich hab das auch schon soweit nachvollzogen, dass ich Objekte anlegen kann, also Kategorien und Unterkategorien. Die Frage, die sich mir stellt ist aber, was mach ich dann damit. Ich will ja hinterher meinem Object eine bestimmte Kategorie und Unterkategorie mitgeben.

Irgendwas ist in meiner Rübe noch nicht richtig sortiert 😦

Hier mein TestCode.


namespace ConsoleApplication6
{
    class Program
    {
        public interface ICategoryElement
        {
            string Name { get; set; }
            void SetParent(ICategoryElement parent);
            IEnumerable<ICategoryElement> Children { get; set; }
            bool IsRoot { get; }
            void AddChild(ICategoryElement newChild);
            //void RemoveChild(ICategoryElement child);
        }

        public class ExampleCategory : ICategoryElement
        {
            //intern mit List<ICategory> arbeiten, zB
            private List<ICategoryElement> _children = new List<ICategoryElement>();
            private ICategoryElement _parent;
            private string _Name;

            //ctor und implementierungen einfügen...
            public ExampleCategory(string Name)
            {
                _Name = Name;
            }

            //Beispielimpl.
            public void AddChild(ICategoryElement newChild)
            {
                _children.Add(newChild);
                newChild.SetParent((ICategoryElement)this);
            }
            public bool IsRoot { get { return _parent == null; } }
            public void SetParent(ICategoryElement parent)
            {
                this._parent = parent;
            }
            public IEnumerable<ICategoryElement> Children { get{return _children;} set{} }
            public string Name { get { return _Name; } set { _Name = value; } }
        }

        static void Main(string[] args)
        {
            ExampleCategory Cat1 = new ExampleCategory("Main1");
            ExampleCategory Cat11 = new ExampleCategory("Sub1");
            ExampleCategory Cat12 = new ExampleCategory("Sub2");
            ExampleCategory Cat13 = new ExampleCategory("Sub3");
            Cat1.AddChild(Cat11);
            Cat1.AddChild(Cat12);
            Cat1.AddChild(Cat13);
        }

    }
}

04.09.2015 - 10:20 Uhr

Hi,

da ich euren Ansatz noch nicht ganz verstanden habe, ich bastle gerade an deinem Code in einem Testprojet herum, fällt mir das schwer einzuschätzen.

Mir geht es auch darum, die Kategorien nicht vermischen zu können. Also Wenn ich KAT->A habe möchte ich einen Fehler bekommen, wenn ich jetzt B1 als unterkategorie zuweise. Im XML oder XDocument, kann ich zwar strukturen ablegen, aber auch kunterbunt gemischt, ohne dass es auffällt.

Aber ich bin mit dem "verstehen" eures Ansatzes noch nicht durch 😃

04.09.2015 - 09:58 Uhr

Hallo LaTino, Hallo Abt,

vielen Dank für eure schnelle Antwort, da ihr euch einig zu sein scheint, ist es bestimmt die richtige Lösung 😃

Abt:" Simples OOP" -> genau das ist das Problem 😃 ich komme aus der Embedded C-Welt und bin im Bereich OOP echt schlecht 😃

Also ich versuch das mal zu verstehen was ihr da geschrieben habt, im Moment ist das noch etwas unklar, aber ich komm schon dahinter 😃

Vielen DANK für den Schubs in die richtige Richtung !!!

Gruß
Lars

04.09.2015 - 09:30 Uhr

Hallo Forum,

ich habe eine Design-Frage die ich im Moment alleine nicht gelöst bekomme.

ich habe eine Object, dem ich noch eine Kategorie mitgeben möchte. Dabei spielt das Object für mein Problem gerade keine Rolle.

Die Kategorie soll eine Hauptkategorie und unterkategorien haben.
Also etwa sowas
KAT=
A-> A1;A2;A3
B-> B1;B2;B3
C-> C1;C2;C3

meinem Object möchte ich jetzt diese Kategorie in einem Property mitgeben.


public class XYZ{
    .....
    public KAT Kat {get;set;}
}

Aber wie muss die Kategorie Klasse dazu aussehen? Da die Hauptkategorien verschiedene Unterkategorien haben, weiß ich da jetzt nicht wirklich weiter.

Ich habe mir schon was "gebaut", wo die Hauptkategorie vom Type Object ist und in den get/set Anweisungen werte ich unterschiedliche Typen aus, aber da ich das Ganze auch noch nach XML serialisieren möchte kriege ich da eine Fehlermeldung.

Ich vermute, dass das irgendwie viel einfacher gehen muss und ich im Moment nur das Wald, Baum Problem habe 😃

Danke im vorraus,

Gruß
Lars

29.06.2015 - 11:31 Uhr

Hi gfoidl,

hast natürlich Recht, der Code funktioniert.
Ich habe das "nur" in der "Überwachung" getestet, da scheint es ein Problem mit der Zuordnung zu geben. Ändere ich den Namen des Root Knotens im Überwachungsfenster, ändert es sich beim Original mit 😦.
Schreibe ich per code den Namen um, funktioniert es 😃

Verstehe ich zwar noch nicht ganz, könnte aber ein Bug im Überwachungsfenster sein.

Den gleichen Effekt kann ich übrigens auch mit deinem Codebeispiel nachvollziehen.
Ändere ich im Ü-Fenster den Wert von xml1.Name auf "root1234", ändert sich der Wert bei xml2 mit.
Führe ich jetzt die Codezeile aus, die den Wert auf "Wurzel" setzt, ist der Wert in xml1 auch "Wurzel". xml2 hat nach wie vor "root1234".
Ändere ich jetzt nochmals über das Ü-Fenster den Wert von xml1 auf "Wurzel5678", bleibt aber xml2 auf "root1234" stehen.

Auf jeden Fall, vielen DANK für eure Antworten !!! Jetzt sollte alles so klappen, wie ich mir das gewünscht habe 😃

Gruß
Lars

26.06.2015 - 20:37 Uhr

Danke Palin,

ich hatte auch schon einen Versuch mit der Serialisierung gestartet, bin aber dann letztendlich daran gescheitert, dass das XElement nicht serialisierbar ist. Zumindest war das die Fehlermeldung.

Ich werd' mir den Link aber noch genauer ansehen, hab gerade nur mein Telefon zur Hand 😃

Gruß Lars

26.06.2015 - 18:20 Uhr

Hallo Experten,

ich verzweifle gerade an einer (hoffentlich) Kleinigkeit.
Ich habe eine Struktur, in der ich ein paar Enumerationen und strings speichere.
Es ist aber auch ein XElement mit in der Struktur und genau das macht mir Kopfschmerzen.

Hin und wieder brauche ich einen DeepClone von so einem Objekt und ich kriege das XElement nicht mit eingefangen. Hab schon alles mögliche ausprobiert und mittlerweile das Gefühl, dass ich vor lauter Bäumen den Wald nicht sehe.

Hatte auch gelesen , dass das hier eine DeepCopy macht.


XElement Org = new XElement("HALLO");
XElement Test=new XElement(Org);

Hat aber auch nicht funktioniert 😦

Das hier ist gerade mein momentaner verzweifelter Versuch, der nicht funktioniert.

Was mach ich denn falsch oder wie macht man's richtig?


public struct SenderReceiverType :  ICloneable
    {
        public object Clone()
        {
            SenderReceiverType MyClone = (SenderReceiverType)this.MemberwiseClone();
            string Test = this.MetaData.ToString();
            MyClone.MetaData= new XElement(XElement.Parse(Test));
            return MyClone;
        }


        public string Init;
        public XElement MetaData;
        public string Comment;
        public eIntExt IE;
        public string RNB;

    }

26.03.2015 - 15:05 Uhr

Auch das ist mittlerweile gelöst... 😃

26.03.2015 - 11:02 Uhr

Hallo MarsStein,

die Einstellungen für das Projekt haben genau das bewirkt, was du vorhergesagt hast. Klasse !!!

Das kleine Prog ist auch schon fertig und läuft zufriedenstellend 😃

Klasse wäre jetzt natürlich noch, wenn ich im SystemTray im Tool-Text anzeigen könnte, welcher Rechner die Verbindung aufgebaut hat.

Mit netstat -a und der Abfrage auf den Port 3389 würde das gehen, aber den Befehl muss ich ja auf dem Server Rechner laufen lassen 😦

Geht so eine Abfrage auch Remote vom "Fremdrechner"? Also rauszubekommen, welcher Rechner die RDP Verbindung aufgebaut hat?

Hab natürlich schon gegoogelt aber bin nicht wirklich fündig geworden.

Gruß
Lars

25.03.2015 - 22:56 Uhr

Danke MarsStein,

das ist ein guter Tip. Das werd ich morgen ausprobieren.

Also ich werde Berichten ob das geklappt hat.
Danke schon mal an alle Helfer !!!!

Gruß Lars

25.03.2015 - 21:38 Uhr

Da hast du natürlich Recht MarsStein.

Der Gedanke, dass in C# zu machen kommt daher, das ich das etwas komfortabler machen wollte.

Ich wollte den Status, ob der Rechner "frei" ist in einem kleinen Programm unten in der Taskleiste anzeigen. Z.B. einen grünen Punkt, wenn frei und einen roten Punkt, wenn belegt.

Per Doppelklick auf den grünen Punkt sollte sich dann eine Verbindung aufbauen.

Fand ich irgendwie ganz cool. Aber grundsätzlich hast du natürlich Recht.

25.03.2015 - 18:25 Uhr

Habe mir jetzt folgendes zusammengebastelt:


var proc = new Process
            {
                StartInfo = new ProcessStartInfo
                {
                    FileName = @"query.exe",
                    Arguments = "session /server:ABC12345",
                    UseShellExecute = false,
                    RedirectStandardOutput = true,
                    CreateNoWindow = true
                }
            };

            proc.Start();
            List<string> Ausgabe = new List<string>();
            while (!proc.StandardOutput.EndOfStream)
            {
                Ausgabe.Add(proc.StandardOutput.ReadLine());
            }

das funktioniert aber nur, wenn ich das query im gleichen Verzeichnis liegen habe, im System32 mag er das nicht direkt finden !

Spricht irgendwas gegen diese Lösung?

Gruß

25.03.2015 - 17:46 Uhr

Hallo MarsStein,

query session /server:SERVERNAME

scheint genau das Richtige zu sein !!!

Jetzt muss ich aber noch mal etwas doof nachfragen.

Wie muss ich das denn in meinem C# Prog nutzen?
Geht das über Process? Wenn ja, wie kriege ich denn da die Ausgabe?

Oder gibt es auch einen Äquivalenten Aufruf in C# direkt?

Gruß
Lars

25.03.2015 - 13:29 Uhr

😃 Deshalb habe ich die in dem Artikel beschriebenen Einstellungen nicht gefunden 😃

Also vielleicht zurück zur Ursprungsidee.

Gibt es keine Möglichkeit das Vorhandensein einer RemoteDesktop Verbindung abzufragen?
Das würde mir ja reichen, dann könnte ich in Abhängigkeit davon mein Flag setzten oder zurücknehmen.

Irgendwie eine Schleife über die vorhandenen Netzwerkverbindungen mit Abfrage auf einen bestimmten Typ, Port, sonstwas.

Ideen?

25.03.2015 - 10:14 Uhr

Hallo vbprogger,

das stimmt, das wäre eine Lösung, die schon mal besser ist, als die momentane Situation. Danke, da hätte ich auch selbst drauf kommen können 😃

Aber so ganz möchte ich die Hoffnung noch nicht aufgeben, dass das auch automatisch geht.

Irgendeiner eine Idee?

Gruß

25.03.2015 - 10:00 Uhr

Hallo hypersurf,

der eine User, unter dem alle arbeiten ist doch immer angemeldet. Ich müßte nur irgendwie prüfen, ob gerade eine Remote Desktop Verbindung zu einem anderen Rechner läuft. Oder habe ich dich falsch verstanden?

Gruß

25.03.2015 - 09:38 Uhr

Hallo vbprogger,

bin mir nicht sicher ob dein Vorschlag funktioniert, da der Rechner ja ständig mit dem gleichen User läuft. Es verbinden sich eben nur unterschiedliche Kollegen per Remote Desktop mit dem Rechner.
Aber eben alle unter dem gleichen User. Ist jemand fertig, wird nur die Remote Desktop Verbindung gekappt, der Rechner bleibt so wie er ist und der nächste könnte sich verbinden.

Gruß

25.03.2015 - 09:19 Uhr

Hallo Experten,

ich brauche einmal eure Hilfe bei einer hoffentlich einfachen Problemstellung 😃

Folgende Situation:
Wir haben bei uns im Team einen Rechner, an dem unser komplettes Testequipment angeschlossen ist. Dadurch müssen mehrere Leute auf diesem Rechner arbeiten.
Damit die Konfiguration immer für alle gleich ist und wir einen geringen Pflegeaufwand haben, haben wir auf dem Rechner EINEN User angelegt, auf dem dann alle arbeiten sollen. Derjenige, der gerade an dem Rechner was machen will, hängt sich über RemoteDesktop einfach drauf. Das klappt auch ganz gut.

Da aber die RemoteDesktop Verbindung über EINEN User einfach eine schon vorhandene Verbindung kappt, ist es etwas nervig, vor der Verbindung bei den Kollegen abzufragen, ob gerade jemand auf dem Rechner ist. Man will ja einen Kollegen nicht einfach rauswerfen 😃

Nun die Frage, oder die Idee.
Ich möchte auf dem TeamRechner ein kleines Prog laufen lassen, das eine Remote Verbindung erkennt und auf einem Server in einer Datei ein Flag setzt.
Wenn die Remote Verbindung beendet wird, wird das Flag wieder gelöscht.
Dieses Flag könnte jeder kurz prüfen, bevor er sich auf dem Rechner anmeldet.

Das geht bestimmt auch eleganter, aber wenn das geht, wäre mir schon geholfen 😃

Hat jemand einen Ansatz zur Lösung?

Gruß
Lars

PS: auf dem Rechner läuft Win7

17.07.2008 - 23:18 Uhr

Hallo,
ich habs gelesen und umgesetzt!!!

Funktioniert alles sehr prima.
Die Möglichkeit vor der Bindung Einfluß auf die Daten nehmen zu können finde ich einfach klasse.

@Peter:
toller Blog von dir, kurz und verständlich.

Danke für die Hilfe!!!

Gruß
Lars

17.07.2008 - 13:43 Uhr

Hallo,
Danke für die Antworten!!!

ext = text.Replace("\n", "<br />");

Habe ich ausprobiert. Allerdings vor dem Eintragen in die Datenbank. Das wurde dann in dem DataGrid einfach als <br/> ausgegeben. Also kein Erfolg. Ich habe auch darüber nachgedacht, vor dem Ausgeben im DataGrid die /n durch <br/> zu ersetzen. Da weiß ich aber nicht wie ich zwischen die Datenbindung komme.

@Peter
Deinen Vorschlag habe ich nicht verstanden. Ausprobiert habe ich folgendes.


Eintrag = Eintrag.Replace(Environment.NewLine, "<br />");

das hat aber den gleichen Effekt. Was mache ich falsch?
Auch hier ersetze ich vor dem Eintragen in die Datenbank, ist das der Fehler?

Gruß
Lars

16.07.2008 - 23:23 Uhr

Hallo,
ich baue gerade an einem Gästebuch herum und habe dabei folgendes Problem:

Ich lasse den Text in eine TextBox eintragen. Dort sind natürlich Zeilenumbrüche erlaubt . Über einen Button kann der eingegebene Text in meine Datenbank eingetragen werden. In der Datenbank sind die Zeilenumbrüche auch erkennbar (kleines Kästchen). Bei der Ausgabe habe ich ein DataGrid an diese Gästebuchtabelle gebunden.
Mein Problem ist nun, die Zeilenumbrüche werden im DataGrid nicht durchgeführt!
Woran kann das liegen?

Ach so, ich sollte noch erwähnen, dass in der Datenbank ist der Datantyp =text ausgewählt ist.

Gruß
Lars

27.06.2008 - 10:45 Uhr

Hallo Peter,

wenn du die rel="lightbox[gallery]" meinst, dann sind die natürlich auch wichtig und stehen auch noch im Code.
Mein Problem lag darin, dass die JavaScripts nicht richtig eingetragen waren.


<script type="text/javascript" src="/LightBox/js/prototype.js"></script>

dieser Eintrag hatte zwar keine Fehlermeldung auf der Seite angezeigt, das Script wurde aber nicht ausgeführt.


<script type="text/javascript" src="../LightBox/js/prototype.js"></script>

Das hat dann den Erfolg gebracht.

Relativ von der Seite in der ich das Script benutze, muß ich halt erst eine Ebene zurück und dann in den Ordner LightBox. Ich vermute, es hätte auch funktioniert, wenn ich den absoluten Pfad angegeben hätte.

Was wäre ich nur ohne dieses Forum 😉)

Gruß
Lars

26.06.2008 - 13:46 Uhr

Hallo Peter,
ich hab den Fehler gefunden.
Die Seite auf der ich die Bilder anzeigen wollte liegt in einem seperaten Ordner.
Ich habe den Pfad jetzt folgendermaßen geändert:


<link href="../styles.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="../LightBox/js/prototype.js"></script>
    <script type="text/javascript" src="../LightBox/js/scriptaculous.js?load=effects,builder"></script>
    <script type="text/javascript" src="../LightBox/js/lightbox.js"></script>
    <link rel="stylesheet" href="../LightBox/css/lightbox.css" type="text/css" media="screen" />

jetzt geht die LightBox auf 🙂

Gruß
Lars

26.06.2008 - 11:30 Uhr

Hallo,
jetzt brauche ich doch noch mal Hilfe.

Ich habe mittlerweile recht viel über Lightox nachgelesen und auch verstanden wie das grundsätzlich funktioniert. In einer Beispielapplikation habe ich das auch alles schön hin bekommen. Mit der Grundlage wollte ich nun LightBox in meiner Applikation einbauen und bekomme es einfach nicht ans laufen.


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Meins.aspx.cs" Inherits="Meins_Meins" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Unbenannte Seite</title>
    <link href="/styles.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="/LightBox/js/prototype.js"></script>
    <script type="text/javascript" src="/LightBox/js/scriptaculous.js?load=effects,builder"></script>
    <script type="text/javascript" src="/LightBox/js/lightbox.js"></script>
    <link rel="stylesheet" href="/LightBox/css/lightbox.css" type="text/css" media="screen" />
</head>
<body>
    <form id="form1" runat="server">
    <asp:ListView ID="GalleryListView" runat="server">
        <LayoutTemplate>
            <ul class="imagelist">
                <asp:PlaceHolder ID="itemPlaceholder" runat="server" />
            </ul>
        </LayoutTemplate>
        <ItemTemplate>
            <li>
                <asp:HyperLink ID="link" runat="server" NavigateUrl='<%# (Container.DataItem as ImageFile).GetImageLink() %>' rel="lightbox[gallery]" ToolTip='<%# (Container.DataItem as ImageFile).FileName %>'>
                    <asp:Image ID="image" runat="server" Width="80px" Height="80px" BorderWidth="1px" ImageUrl='<%# (Container.DataItem as ImageFile).GetThumbLink() %>' AlternateText="" />
                </asp:HyperLink>
            </li>
        </ItemTemplate>
    </asp:ListView>
    <asp:DataPager ID="GalleryListViewPager" runat="server" 
            PagedControlID="GalleryListView" 
            PageSize="7" 
            OnPreRender="GalleryListViewPager_PreRender">
        <Fields>
            <asp:NextPreviousPagerField FirstPageText="&lt;&lt;" 
                    ShowFirstPageButton="True" ShowNextPageButton="False" 
                    PreviousPageText="&lt;" />
            <asp:NumericPagerField />
            <asp:NextPreviousPagerField LastPageText="&gt;&gt;" 
                    ShowLastPageButton="True" ShowPreviousPageButton="False" 
                    NextPageText="&gt;" />
        </Fields>
    </asp:DataPager>
    </form>
</body>
</html>

Die Dateien liegen in meinem Projekt so:
..Project\LightBox\css\lightbox.css
..Project\LightBox\images(alle Bild Dateien)
..Project\LightBox\js\bulder.js
..Project\LightBox\js\effects.js
..Project\LightBox\js\lighbox.js
..Project\LightBox\js\prototype.js
..Project\LightBox\js\scriptaculous.js
..Project\styles.css

Ich vermute, es liegt irgendwie an den Pfaden, denn dort scheint wohl öfter das Problem zu liegen. Ich hab aber schon alles mögliche ausprobiert, nichts hat geholfen.

Klicke ich auf eins meiner Bilder, wird das Bild einfach auf einer neuen Seite geöffnet.
Ich weiß, das Problem wurde auch schon öffter angesprochen, nur habe ich in keinem Thread eine Lösung für mein Problem gefunden.

Kann mir jemand helfen?

PS: ich nutze VWD2008Express Edition

Gruß
Lars

24.06.2008 - 14:11 Uhr

Hallo Peter,
ich habe FireBug installiert.
Die Stelle, die vom Script manipuliert wurde, habe ich noch nicht finden können. Aber so schnell gebe ich nicht auf 😉

Auf jeden Fall vielen Dank für die Unterstützung, die Zusammenhänge sind mir jetzt klarer geworden. Leider aber auch, dass ich noch viel zu wenig gelernt habe. Aber auch hier gebe ich natürlich nicht auf!

Gruß
Lars

24.06.2008 - 12:28 Uhr

Danke für die schnellen Antworten!!!

Also das Attribut "ref=" wird dazu genutzt, den Java Code zu starten.
Sorry im Vorfeld falls das eine unnötige Frage ist,
aber ich habe noch nicht verstanden wie die Java Welt und die ASP Welt an dieser Stelle vereinigt werden.

Über "lightbox[gallery]" konnte ich keinen mir plausiblen Einsprung in ein Script finden.
Wie ist hier die Syntax? Auch im Seitenquelltext hat sich mir das nicht ergründet.

Wie wird der Eintrag in "ref=lightbox[gallery]" interpretiert?

Vielleicht hat auch jemand einen geeigneten Link zum Nachlesen.

Gruß
Lars

23.06.2008 - 22:45 Uhr

Hallo,


<asp:ListView ID="GalleryListView" runat="server">
            <LayoutTemplate>
                <ul class="imagelist">
                    <asp:PlaceHolder ID="itemPlaceholder" runat="server" />
                </ul>
            </LayoutTemplate>
            <ItemTemplate>
                <li>
                    <asp:HyperLink ID="link" runat="server" 
                     NavigateUrl='<%# (Container.DataItem as GO.WebGallery.ImageFile).GetImageLink(600, 0) %>' 
                     rel="lightbox[gallery]" ToolTip='<%# (Container.DataItem as GO.WebGallery.ImageFile).FileName %>'>
                        <asp:Image ID="image" runat="server" Width="80px" Height="80px" 
                         BorderWidth="1px" ImageUrl='<%# (Container.DataItem as GO.WebGallery.ImageFile).GetImageLink(80, 80) %>' 
                         AlternateText="" />
                    </asp:HyperLink>
                </li>
            </ItemTemplate>
        </asp:ListView>

Was bedeutet folgender Teil des HyperLinks ???
rel="lightbox[gallery]"

Ich hab gegoogelt und nichts zum Attribut "rel=" beim HyperLink gefunden.

Kann mich da jemand aufschlauen?

Gruß
Lars

13.06.2008 - 10:39 Uhr

Hallo,
ich bin mir nicht ganz sicher ob dieser Beitrag eher in die Ecke "Datentechnologien" gehört, aber ich leg mal los.

Umgebung: VSWebDeveloper mit MSSQL_Express

Ich übe mich gerade in der Anbindung einiger Controls an eine kleine Datenschnittstelle zu meiner Datenbank. Dabei habe ich folgendes Problem:

Ich versuche die in der ASPNETDB.MDF Datenbank befindliche aspnet_Users in einem DataGrid darzustellen und in einem DetailView editierbar zu machen. Dabei ist die Tabelle eigentlich nicht wichtig, ich hab mir die einfach mal zum ausprobieren genommen.

Das SELECT des GridView habe mit der Funktion DBDataLayer.GetUser() verbunden.
Das SELECT des DetailView habe ich mit der Funktion DBDataLayer.GetUser(Guid UserID) verbunden.

Das funktioniert soweit auch prima.

Nun wollte ich über das DetailView auch ändern können (einfach mal den Namen ändern) Also habe ich dem UPDATE im DetailView die Funktion DBDataLayer.Update(Guid UserID,string UserName) übertragen. Und genau das funktioniert so nicht.
Da bekomme ich die Fehlermeldung:
ObjectDataSource "ObjectDataSource2" konnte keine nicht generische Methode "Update" finden, die Parameter hat: ApplicationId, UserId, UserName, LowerdedUserName, MobileAlias, IsAnoymous, LastActivityDate, LoweredUserName, IsAnonymous.

Dabei fällt mir auf, dass LoweredUserName, IsAnonymous doppelt vorhanden sind, was ich nicht wirklich verstehe und das da offensichtlich eine UPDATE Funktion erwartet wird mit einem Parameter für jedes Element der Tabelle.
Ist es wirklich so, dass die UPDATE Funktion nur klappt, wenn alle Parameter angegeben sind? Hab ich natürlich auch schon probiert und hat nicht funktioniert.

Kann mir da jemand weiterhelfen?

Gruß
Lars

Der Code der DatenSchnittstelle sieht so aus:


using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient ;
using System.Data.Sql  ;

/// <summary>
/// Zusammenfassungsbeschreibung für Class1
/// </summary>
public class DBDataLayer
{
    public DBDataLayer()
	{
		//
		// TODO: Konstruktorlogik hier hinzufügen
		//
	}
    public static DataTable GetUser()
    {
        return DataLayerHelper.Get("SELECT * FROM aspnet_Users");
    }
    public static DataTable GetUser(Guid UserID)
    {
        return DataLayerHelper.GetByID("SELECT * FROM aspnet_Users WHERE UserId=@UserID","UserID",UserID);
    }
    public static int Update(
        Guid UserID,
        string UserName
        )
    {
        SqlParameter[] sqlParams = new SqlParameter[]{
            new SqlParameter ("@UserID",SqlDbType.UniqueIdentifier,16),
            new SqlParameter ("@UserName",SqlDbType.VarChar ,256)
    };
        sqlParams[0].Value = UserID ;
        sqlParams[1].Value = UserName;


        return DataLayerHelper.ExecuteNonQuery("UPDATE aspnet_Users SET UserName=@UserName WHERE UserId=@UserID", ref sqlParams);

    }

   

}


using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Data.Sql;

/// <summary>
/// Summary description for DataLayerHelper
/// </summary>
public static class DataLayerHelper
{
  public static DataTable Get(string cmdText)
  {
      using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BDCon"].ConnectionString))
    {
      conn.Open();
      SqlCommand cmd = new SqlCommand(cmdText, conn);
      DataTable tbl = new DataTable();
      tbl.Load(cmd.ExecuteReader(CommandBehavior.CloseConnection));
      return tbl;
    }
  }

  public static DataTable GetByID(string cmdText, string IDName,Guid IDValue)
  {
      using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BDCon"].ConnectionString))
    {
      conn.Open();
      SqlCommand cmd = new SqlCommand(cmdText, conn);
      cmd.Parameters.Add(IDName, SqlDbType.UniqueIdentifier,255).Value = IDValue;
      DataTable tbl = new DataTable();
      tbl.Load(cmd.ExecuteReader(CommandBehavior.CloseConnection));
      return tbl;
    }
  }
   
  public static int ExecuteNonQuery(string cmdText, SqlParameter param)
  {
      using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BDCon"].ConnectionString))
    {
      conn.Open();
      SqlCommand cmd = new SqlCommand(cmdText, conn);
      cmd.Parameters.Add(param);
      return cmd.ExecuteNonQuery();
    }
  } 

  public static int ExecuteNonQuery(string cmdText, ref SqlParameter[] sqlParams)
  {
    return ExecuteNonQuery(cmdText, ref sqlParams, CommandType.Text);
  }

  public static int ExecuteNonQuery(string cmdText, ref SqlParameter[] sqlParams, CommandType cmdType)
  {
      using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BDCon"].ConnectionString))
    {
      conn.Open();
      SqlCommand cmd = new SqlCommand(cmdText, conn);
      cmd.CommandType = cmdType;
      cmd.Parameters.AddRange(sqlParams);
      return cmd.ExecuteNonQuery();
    }
  }
}

02.06.2008 - 12:09 Uhr

Hallo,
das mit dem IIS hat sich ein wenig entspannt, da ich bei meinem Serverpaket keine Einstellung selbst tätigen kann. Deshalb war ich auch etwas verwirrt. Ich muß jede Berechtigung über meinen Hoster einspeisen. Der Ordner write hat keine Leserechte für den Client, deshalb ist das Verhalten auch erst mal plausibel. Ich habe einen Ordner mit leseberechtigung anlegen lassen und werde das mal ausprobieren.

@Xynratron

ich werde mir mal ansehen wo der Unterschied in der von dir vorgeschlagenen Version des Pfadhandlings besteht. Deine Version sieht natürlich etwas eleganter aus. Hat dein Vorschlag noch andere Gründe?

Gruß
Lars

02.06.2008 - 10:36 Uhr

Hallo,
weil mir immer noch das Grundverständnis für den IIS fehlt folgende Fragen:

Ich kann also meine Web Anwendung die irgendwo in meinem Ordnersystem lokal liegt mit einem virtuellen Webverzeichnis im IIS versehen. Darüber kann ich dann die Zugriffsrechte der Anwendung steuern, richtig???

Aber hat das auch Einfluß auf den Server auf dem ich die Page letztendlich laufen lassen will? Bis jetzt wurden die Zugriffsrechte duch den Hoster angepaßt, da brauchte ich bis jetzt nichts zu machen. Oder stellen die das auf dem Server für mich ein, auch mit dem IIS?

Bis jetzt kapier ich das alles nicht wirklich.
Kann mir jemand den grundsätzlichen Zusammenhang zwischen den IIS der auf meinem Rechner installiert ist und dem Server wo die Web Site später laufen soll erklären?

Gruß
Lars

31.05.2008 - 22:53 Uhr

Hallo,

ich hab jetzt mal ein bisschen angefangen über das IIS nachzulesen. Da habe ich wohl ein echt wichtiges kapitel übersehen.
Was mich nur wundert, ich habe jetzt schon ein paar Bücher zum Thema ASP.NET gelesen, aber die Probleme die ich mit der ganzen Thematik habe sind ganz anders gelagert. Für mich ist das ganze Serverhandling inclusive dieses IIS noch etwas undurchsichtig.
Kennt jemand ein Buch oder Tutorial, in dem der ganze Workflow beschrieben ist? In meinen Büchern steht zu den Problemen mit denen ich zur Zeit kämpfe nichts!

Schön wäre ein Artikel mit Checkliste, was man alles eingestellt und konfiguriert haben muss, damit man richtig los legen kann.

Gruß
Lars

PS: bin für Tips zum Thema IIS nach wie vor dankbar.

31.05.2008 - 17:20 Uhr

Hallo Peter,

der BildLink auf dem Server so aus:
<input type="image" name="GridView1$ctl03$ImageBtn1" id="GridView1_ctl03_ImageBtn1" src="../write/Test/DSC_0001_0000Thmb.JPG" style="width:80px;border-width:0px;" />

und so lokal:
<input type="image" name="GridView1$ctl03$ImageBtn1" id="GridView1_ctl03_ImageBtn1" src="../write/Test/DSC_0001_0000Thmb.JPG" style="width:80px;border-width:0px;" />

also genau gleich!

Ist vielleicht noch wichtig. Die Seite die ich ausführe ist so angeordnet.
..Web\Seite\Seite.aspx

Besagter Ordner
..web\write\Test..
sollte eigentlich auf dem Server zum lesen und schreiben frei gegeben sein. Werd ich aber noch mal prüfen.

Das mit dem IIS ist etwas schwiereiger weil ich davon zur Zeit keine Ahnung habe. Ich hab zwar mittlerweile schon einiges über ASP.NET gelernt, aber mit der ganzen Sever Anbindung und dem Uploaden stehe ich doch irgendwie auf Kriegsfuß.
Ich weiß ich kann den IIS irgendwie auf meinem Rechner konfigurieren, mir ist aber nicht ganz klar, was ich dort einstellen sollte, damit dies Einfluß nimmt auf den Server. Aber wie schon gesagt im Moment verstehe ich davon noch nichts. Vielleicht hast du noch einen Tipp wo ich genau nachschauen soll?

Gruß
Lars

31.05.2008 - 09:11 Uhr

Hallo,
ich habe ein Problem bei dem ich nicht weiter komme. Ich möchte auf einer Page
ein paar Bilder als Thumb anzeigen und bei dem Klick auf ein Bild das größere laden.
Dafür nutze ich eine GridView mit ImageButton und ein Image zum Anzeigen.
Das funktioniert auch alles prima, aber eben nur lokal.
Irgendwie haut das mit den Pfaden auf dem Server nicht hin.

Folgendes habe ich umgesetzt:
Ich fülle ein DataTable als Source für ein GridView, die Files lese ich so aus...
(in dem Verzeichnis befinden sich immer BildThmb.jpg und Bild.jpg)


private System.Data.DataTable FillTable()
    {
        string Path = HttpContext.Current.Server.MapPath("~/write/Test");
        string ServerPath = HttpContext.Current.Server.MapPath("..");
        string[] s = System.IO.Directory.GetFiles(Path, "*.jpg");
        dt = new System.Data.DataTable();
        c = new System.Data.DataColumn("Filename");
        dt.Columns.Add(c);
        System.Data.DataRow r;
        foreach (string str in s)
        {
            r = dt.NewRow();
            if (str.Contains("Thmb"))
            {
                r["Filename"] = str.Replace(ServerPath, "~");
                dt.Rows.Add(r);
            }
        }
        return dt;
    }

da kommen dann Pfade raus wie ~/write/Test/BildThmb.jpg

die Darstellung mache ich dann so...


<asp:GridView ID="GridView1" runat="server" 
                AllowPaging="True"
                onpageindexchanging="GridView1_PageIndexChanging"
                 AutoGenerateColumns="False" CellSpacing="-1" HorizontalAlign="Left" 
                 PageSize ="7"
                 >
                <PagerSettings PageButtonCount="4" Position="Top" />
                <Columns>
                <asp:TemplateField>
                <ItemTemplate>
                    <asp:ImageButton ID ="ImageBtn1" runat ="server" Width ="80px" ImageUrl='<%# Eval("Filename") %>' OnClick="ImgBtnKlick"/>
                </ItemTemplate>
                </asp:TemplateField>
                </Columns>
            </asp:GridView>


und das klick ereignis werte ich so aus...
zum Anzeigen lösche ich das Thmb aus dem Dateinamen und nehme das entsprechen größere Bild.


public void ImgBtnKlick(object sender, EventArgs e)
    {
        string Url = ((ImageButton)sender).ImageUrl;
        Image1.ImageUrl = Url.Replace("Thmb", "");

    }

Warum funktioniert das lokal einwandfrei und auf dem Server nicht?
Ich muß dazu sagen, dass ich mich noch nicht sehr lange mit ASP.NET beschäftige, ich hoffe also die Frage ist nicht zu trivial oder gar dumm 😉 Ich habe auch schon recht viel gegoogelt aber irgenwie keine Lösung gefunden.

Gruß
Lars

29.05.2008 - 09:54 Uhr

Hallo,
bei mir funktioniert das jetzt folgendermaßen:

Die vom VWebDeveloper erstellte Datenbank (App_Data/ASPNETDB.mdf) im Datenbankexplorer mit dem Server abgleichen (rechte Maustaste auf der Datenbank-> An Anbieter veröffentlichen). Dazu wird der Publishing Wizard von Microsoft benötigt. Dann sind die lokalen Daten schon mal auf dem Server. Danach wird der zur Datenbank zugehörige ConnectionString in der Web.config eingetragen.

Damit funtioniert das bei mir!

Gruß
Lars

!!! PS: Vielen Dank an den wirklich guten Support von Centron. Kann ich wirklich nur weiterempfehlen !!!

27.05.2008 - 17:51 Uhr

Hallo,
ich versuche mal mein geballtes Halbwissen weiter zu geben.

Die DB im Verzeichnis App_Date kannst du im Datenbank-Explorer mit der rechten Maustaste mit einer anderen Datenbank verbinden. Vorher mußt du die DB natürlich auf dem Server anlegen (abgleichen), damit die strukturell gleich aufgebaut sind.

Danach sollte das ganze auf dem Server funktionieren.

Gruß
Lars

PS: ich stecke gerade in der gleichen Thematik und muß meine Datenbank auch auf den Server bringen. Mal sehen ob es wirklich klappt. 🙂)

25.05.2008 - 11:53 Uhr

Hallo Peter,
danke für deine Antwort.

Ich werd mal bei meinem Webhoster nachfragen wie das mit der Startpage funktioniert.

Das mit den Bildern ist eigentlich nur zum anzeigen gedacht und im Moment nur ein Gedankenspiel, da mit Bildern ja recht viel Webspace drauf gehen kann. Am Anfang werde ich die Bilder wohl auf dem ASP Server lagern, mal sehen wie lange der Platz reicht, da ich nur recht wenig Webspace gebucht habe.

Gruß
Lars