VB.Net Jeder Browser verhält sich auf einem anderen Computer anders kompiliert.

Bear mit mir hier, weil dies möglicherweise nicht so Standard ist, wie Sie vielleicht denken. Oder vielleicht wird es sein. Ich kann nur hoffen

Ich habe ein Tool erstellt, mit dem zwei Webbrowser Daten lesen und vergleichen können. Es funktioniert einwandfrei auf meinem eigenen Computer kompiliert.

Once kompiliert Ich habe es auf verschiedenen VPC's und VPS's ausgeführt und das erste lädt die Daten und liest es kein Problem. Das ist in Ordnung (keine Probleme).

Der zweite Browser wird geladen. Alle Daten sind da. Aber ich habe es die Informationen in ein Listenfeld sowie ein Array Dump (wie der erste Browser und es funktioniert gut für beide, wenn ich es lokal ausführen).

Beide Browser funktionieren auf die gleiche Weise mit:

For Each element As HtmlElement In Me.BROWSERNAME.Document.GetElementsByTagName("span")

Um die gewünschten Statistiken zu finden.

Ich kann nicht herausfinden, warum ein Browser funktioniert und nicht der andere. Es funktioniert jedes Mal vor Ort, aber sobald ich es kompiliere und an eine andere Stelle lege, liest es das zweite Mal nicht.

Der einzige Unterschied zwischen den beiden, den ich sehen kann, ist, dass man ein bisschen Regex verwendet:

readdata = System.Text.RegularExpressions.Regex.Replace(readdata, "[^\d]", " ")

Und ein Stringsplit, um jede Zeile aufzubrechen.

Dim parts As String() = readdata.Split(New String() {Environment.NewLine},
                                         StringSplitOptions.None)

So muss meine einzige Annahme sein, dass dies die Verwendung von etwas ist, das auf den anderen Systemen nicht funktioniert.

uf allen anderen Systemen ist die neueste .net-Version installiert. Ich habe mit Regex herumgespielt, um die Einstellungen für die Browser-Emulation zu ändern (damit vb.net-Browser geladen werden können, aber ich habe genau das Gleiche vor Ort gemacht und es hat funktioniert).

Meine Importe:

Imports System.IO 
Imports Microsoft.Win32
Imports System.Threading 

Aber ich gehe davon aus, dass diese alle im Build- oder .net-Framework enthalten sind. Vielleicht liege ich dort falsch, aber ich weiß nicht, wie ich sie sonst einbeziehen soll.

Ich baue für "jede CPU". Ich habe versucht, die EXE-Datei einfach auf die anderen Systeme zu kopieren, und ich habe versucht, sie mit dem Veröffentlichungsteil auf dem anderen System zu installieren.

eder Rat wäre wirklich dankbar, wenn er mich verrückt machen würd

Bearbeiten

Nach einigen weiteren Tests können einige Informationen problemlos vom zweiten Browser gelesen werden (genauso wie lokal). Aber der zweite Teil verwendet den obigen Stringsplit- und Regex-Code, also bin ich mir ziemlich sicher, dass es darum geht, nicht darüber hinwegzukommen.

Antworten auf die Frage(0)

Ihre Antwort auf die Frage