Ich habe ein sehr seltsames Problem mit einem VBScript: Es funktioniert gut, abhängig von dem Server, wo das Web befindet.VBScript läuft nicht abhängig vom Webserver
Ich habe die gleiche Webanwendung auf zwei Servern mit IIS 7.5. In jedem Server ist der Code genau gleich.
Das VBScript führt einige Excel-Zeilen aus und es aktualisiert einige Informationen in der Webanwendung. Das Problem tritt auf, wenn diese Informationen aktualisiert werden. In einem der Server, gibt es kein Problem, aber in der anderen, erhalte ich den Fehler unten:
Wie das Skript, wie es läuft tun würde, ich denke, es gibt keine Syntaxfehler
Der Code den Fehler zu werfen ist:
With objIE
If (testing) Then
.Navigate URLtesting
Else
.Navigate URL
WScript.Sleep 2000
End If
WaitWebLoad()
.document.getElementById(user).Value = userScript
.document.getElementById(password).Value = passwordScript
.document.getElementById(logInButton).Click()
WaitWebLoad()
.document.getElementByID(loretoLink).Click()
WaitWebLoad()
.document.getElementByID(updatePLLink).Click()
WaitWebLoad()
Do
lastRow = activeSheet.Cells(rowIndex, columnPL_ID).Value
dateAssociated = activeSheet.Cells(rowIndex, columnArrivalDate).Value
concesion = activeSheet.Cells(rowIndex, columnConcesion).Value
If lastRow <> "" Then
.document.getElementByID(searchPL_TB).Value = lastRow
.document.getElementByID(searchPL_Button).Click()
WaitWebLoad()
If (Not (.document.getElementByID(errorLookingPL)) Is Nothing Or Not (.document.getElementByID(noSearchResult) Is Nothing)) Then
'PL not found
recordsNotFound = recordsNotFound + 1
WriteOpenFileText(logFilePath), (Now & vbTab & "***PL not found: " & lastRow & " - [" & dateAssociated & "]" & " - " & concesion & vbCrLf)
Else ...
die Zeilennummer 295 ist:
If (Not (.document.getElementByID(errorLookingPL)) is Nothing Or Not (.document.getElementByID(noSearchResult) is Nothing)) Then
Die WaitWebLoad Funktionscode ist:
Function WaitWebLoad()
Dim timer
timer = 0
With objIE
Do While .Busy
If timer < timerWebLoad Then
WScript.Sleep 100
timer = 100
Else
'Error loading the web
objExcel.Workbooks.close
objExcel.quit
objIE.quit
DeleteFile(pathTemp)
endScriptStamp = Now
WScript.Echo("Error." & vbCrLf & "Total runtime is: " & DateDiff("s", startScriptStamp, endScriptStamp) & " seconds.")
WScript.quit
End If
Loop
End With
End Function
Ich denke, das Problem ist, dass das Skript, wenn der Server ausgeführt wird, wo der Fehler auftritt, verliert das objIE
Objekt, aber ich weiß nicht, warum es immer nur in einem der Server verloren.
Ich bin mir nicht sicher, was IIS damit zu tun hat, Code Ihres Laufes VBS, die clientseitige * ist (der Server in diesem Fall des Kunde sein) *, es keinen Einfluss auf IIS hat so weit wie Ich kann es sehen?? – Lankymart
Es ist wahrscheinlich, dass auf keinem der Server Excel oder zumindest die COM-Komponenten installiert sind. In beiden Fällen müssen Sie ein Debugging durchführen, um herauszufinden, welches Objekt nicht festgelegt ist. – Lankymart
@Lankymart Es ist korrekt. Der Server hat damit nichts zu tun: Das Skript ist wie eine Person, die einige Aktionen in einer Webanwendung ausführt. Aber abhängig von dem Server, den ich auf die Web-App zugreife, funktioniert es gut oder nicht. Der Server muss nicht über Excel oder die COM-Komponenten verfügen, denn wenn ich auf das Web zugreifen, das sich auf dem Server befindet, auf dem das Skript ausgeführt wird, ist die Webanwendung durch menschliche Interaktion vollständig nützlich. – Carlos