Visual Studio 2010 Web Reference URL ändern

Liebe/-r Experte/-in,
ich habe zwei Webserver(Test und Produktion) und möchte im Debug-Modus auf den Test-Server zugreifen und im Release-Modus auf den Produktionsserver zugreifen. Ich habe schon im Internet geservt, jedoch nichts passendes für Visual Studio 2010 gefunden.
Wenn ich im Code einfach die URL ändere, bekomme ich Fehlermeldung.
Ich entwickle in vb.net unter Visual Studio 2010.

Ich wäre dankbar für eine genaue Beschreibung.

Danke im Voraus.

Lilia

Wie lautet die Fehlermeldung?

Sorry, Lilia,
da kann ich leider nicht helfen.

Hallo Lilia,

Schau Dir mal diesen Artikel an:
http://blogs.msdn.com/b/vsto/archive/2010/03/09/tric…

Der bezieht sich zwar auf ClickOnce, behandelt aber unterschiedliche app.config für die jeweilige Laufzeitumgebung.
Wenn Du in jeweils für Debug und Release eine unterschiedliche app.config hast und dort dir jeweilige URL für den Webservice einträgst, könnte das funktionieren. Voraussetzung ist aber natürlich, dass die beiden Webservices kompatible Schnittstellen benutzen.

Gruß
Thomas

Sie lautet: „Fehler im XML-Dokument (2,600)“

Wie lautet die Fehlermeldung?

PS.: Die Fehlermeldung kommt, wenn ich eine Funktion des Webservices aufrufe.

Wie lautet die Fehlermeldung?

Also da kann ich dir leider nicht helfen, ich habe noch nie etwas vom remotedebugging für webseiten gehört.

Ich habe schon sehr große Web Projekte entwickelt und ebenfalls auch meine Kollegen, doch wozu benötigt man zwei Webserver?

Also man debuggt den Code ja schon auf seiner eigenen Entwicklungsmaschiene, dann kann man zum testen der Webseite diese auf einen Test-Server veröffentlichen und danach dann die Scharfe-Version auf den Produktions-Server veröffentlichen.

Ich selber habe meine Seiten immer mit einer Fehleranfrangsroutinen bestückt die mir auftrtene Fehler in einer Datenbank speichern und mir gleichzeitig eine Fehlermail zusenden. Diese Fehler habe ich dann lokal auf meiner Entwiklungsmaschiene reproduziert und behoben.

Wichtig dabei ist das man sich den User den Seitennamen und die Routine si wie derren übergebene Parameter merkt. so dass man den Fehler auch reproduzieren kann.

Wenn du weitere Fragen hast, darfst du mir gerne unter [email protected] mailen. Diese E-Mail ist nur für dich! :smile:

Hallo Lilla,

ohne den Code zu deinem Webservice
zu kennen, ist eine Ferndiagnose
recht schwierig.

PS.: Die Fehlermeldung kommt, wenn ich eine Funktion des
Webservices aufrufe.

Wie lautet die Fehlermeldung?

Hallo Steffen,

mein Code lautet so:
Dim ts As New TestService.Webservice
ts.Url = „http://xxx.php

Dim user As New TestSevice.User
Dim Response As New TestSevice.UserResponse

user.Name = „hallo“
user.Kennwort = „hallo“
Response = ts.TestUser(user)

Wenn ich die Funktion TestUser aufrufe, kommt die o.g. Fehlermeldung. Übrigens es wird beim Hinzufügen von Webdienst eine Webservice.wsdl hinzugefügt.

Gruß
Lilia

Hallo Videakulix,

ich danke dir für die E-Mail und für die Antwort, aber es ist eine VB.Net-Anwendung, die auf ein MySQL-Server zugreift und Daten ausliest. Zwei Server brauche ich, damit ich nicht durcheinander komme und meine Kunden statt auf den Live-Server auf den Testserver zugreifen. Bevor ich jedes mal vor dem neuen Release neuen Server anbinden muß, habe ich gedacht, ich lege es fest, dass im Debug-Modus der Testserver angesprochen wird und im Release-Modus der Live-Server. Vielleicht weiß ich etwas nicht, kannst mich dann aufklären.

Viele Grüße
Lilia

Hallo Thomas,

danke dir für die Antwort. Ich bin jetzt meinem Problem näher gekommen. Und zwar wird bei mir beim Hinzufügen des Webservices auch die Webservice.wsdl-Datei eingefügt, in der die URL’s für die einzelnen Funktionen stehen. Ändere ich nur die Haupt-URL, bleiben die anderen jedoch bestehen und es kommt zur Fehlermeldung, wenn ich eine der Funktionen aufrufe. Kann man da etwas machen?

Viele Grüße
Lilia

Hallo Lilia,

was soll denn auf dem Testserver passieren?

Greifen deine Kunden auf diesen Server zu um zu testen?
Oder soll das dein eigener nur für dich Entwicklungs-Test-Server sein?

Zum Entwickeln benötigst du keinen testserver!

Auf die Datenbank solltest du ebenfalls von außen zugreifen können, so das deine Anwendung auf deinem Lokalen Rechner funktioniert!

Bei der Datenbank-Connection fragst du halt nur ab ob du auf deinem Lokalen Rechner bist und verbindest dich dann halt über dem einen Connectionstring und wenn die Anwendung auf dem Wegserver läuft mit dem anderen lokalen Connectionstring.

Oder Installiere die die My-SQL Datenbank auch auf deinem Entwicklungsrechner oder in einer VM-Ware!

So macht das im normalfall Jeder!

Ich glaube das mit der Datenbank macht dir zu schaffen?
Du kannst außerhalt nicht drauf zugreifen??

Die Datenbank zu installieren ist völlig Problemfrei und kostenlos für Entwickler!
Du brauchst zur Entwicklung ja keine Super Schnelle Datenbank, sondern eine Test-Datenbank die deine Anfrage zurückgibt.

Aber du solltest eigentlich von außen auf die Datenbank deines Webservers zugreifen können!

Falls nicht, frage mal deinen Provider oder Admin wie du das realisieren kannst!

Was du aber auch Probieren kannst ist:
Wenn du in Visual Studio 2010 ein neues Webprojekt erstellst, fragt die VS nach einen Namen, links neben der Textbox befindet sich ein DropDown Menü, da steht momentan Dateisystem!
Da kannst du auch Http oder FTP aussuchen. Funktioniert das dann???

Habe ich selber noch nie ausprobiert, weil ich es nir benötigte!

Hallo Lilia,

Du sollst ja nichts in der generierten wsdl-Datei ändern. Die wird sowieso bei jedem Aktualisieren des Webverweises neu überschrieben.
Die jeweilige URL (Test oder Produktiv) passt Du nach dem Instanzieren des Webservice in Deinem Code an:
Z.B.

Dim wsEntfernterService As New EntfernterHost.Webservice()

If Laufzeitumgebung = "Test" Then
 wsEntfernterService.Url = "http://test-host/webservice"
Else
 wsEntfernterService.Url = "http://prod-Host/webservice"
EndIf

ergebnis = wsEntfernterService.Methode(meinParameter)

Gruß
Thomas

Hallo Thomas,

genau das habe ich auch gemacht. Aber ich bekomme beim Aufruf der Methode folgende Fehlermeldung: „Fehler im XML-Dokument (2,600)“. Deshalb bin ich auf die wsdl-Datei gekommen.

Was kann das sein? Ich kenne mich leider damit wenig aus :smile:.

Gruß
Lilia

Hallo Videakulix,

ich glaub, wir reden gerade aneinander vorbei. Der Webservice ist in PHP geschrieben. Mein Kollege ist für den Fernserver zuständig und er stellt mir ein Webservice mit unterschiedlichen Methoden zur Verfügung, über die ich in die Ferndatenbank schreiben kann. Den Testserver brauche ich, um die von ihm geschriebenen Methoden zu testen. Die Methoden werden nämlich auch während der Entwicklung hinzugefügt und müssen getestet werden. Wenn ich die URL vom Webservice ändere und versuch dann eine Methode aufzurufen, bekomme ich folgende Fehlermeldung: „Fehler im XML-Dokument (2,600)“.

Hach so,

du hattest ja nicht geschrieben was du genau machst!

Aber dann ist das ja überhaut kein Problem deinen Code lokal zu testen! ???

Entweder Reden wir wirklich vollkommen aneinander vorbei, oder ich verstehe nicht warum du nicht lokal testen kannst!

Also, du entwickelst doch grade Lokal deine Homepage?
Kannst du Lokal alles machen was du möchtest?
Wenn ja, warum testest du dann auf einem Testserver?
Wenn Nein, was funktioniert denn auf deiner lokalen Maschiene nicht dass du einen Test-Server benötigst?

Sollte alles auf deiner Entwicklungsmaschiene Funktionieren, dann fehlt wohl noch ein Framework oder ähnliches auf dem test-Server!

Oder bin ich grade auf´m Holzweg?

Lass Dir nochmal den Proxy generieren (Webverweis aktualisieren).
Und zwar einmal mit der URL von Deinem Testserver und teste dann beide URLs - und zum zweiten mit der URL von Deinem Prodserver, und teste da mal beide URLs. Da scheint es doch noch Unterschiede zu geben, was den Methodenaufruf dann scheitern lässt.

Hallo Videakulix,

ich entwickle keine Homepage sondern eine Client-Anwendung, die ihre Daten vom Server holt und in der lokalen Datenbank speichert. Ebenso kann ich die Daten auf dem Client verändern und diese zum Server hochschicken . Die Daten müssen von jedem PC aus zugreifbar sein, deshalb gibt es einen Live-Server. Ich entwickle aber weiter und es gibt auch Veränderungen in der Datenbank und damit meine Kunden keine Schwierigkeiten bekommen, weil ich etwas verändert hab, brauche ich einen Testserver.

Viele Grüße
Lilia

Sorry, Sorry !! Sorry!

Ja, ha haben wir völlig ANEINANDER VORBEI GEREDET!

Sag doch gleich, das du mit einer WindowsForms-Client-Anwendung im Debug auf einen Webservice von einem Test-Server und im Release auf einen Webservice auf einem Scharfen Server zugreifen möchtest!

Wenn du nur von Webserver sprichst und nicht sagst das du eine Clientanwendung Programmierst dann kann dich auch keiner richtig verstehen!

So hier die lösung:

#If DEBUG Then
'Du befindest dich im DEBUG
'Hier die Bindung zum Test-Server inizialisieren
#Else
'Du befindest dich im RELEASE
'Hier die Bindung zum Scharfen-Server inizialisieren
#End If

So kannst du auch andere Sachen abfragen!

die Gatter gehören dazu (#IF) nicht nur (IF)!

Fertig! Wer ordentlich Beschreibz bekommt auch fluchs Antworten!! :smile:

Nichts für ungut, ich hoffe das hilft!

Solltest du noch Probleme haben, melde dich ich helfe gerne!