2009-08-24 13 views
1

Ich habe eine VS 2008-Lösung, die eine Website und einen Webdienst enthält. Ich entwickle beide gleichzeitig, und es ist hilfreich, von einem in den anderen zu debuggen.VS 2008-Debugger: Wie entscheidet es, welchen Cassini-Port ein Webdienst unter ausführt?

Es kann gelegentlich den Webdienst nicht finden. Wenn ich in der web.config nachschaue, finde ich, dass die Portnummer, die es untersucht, nicht die Portnummer ist, unter der der Dienst automatisch ausgeführt wird, wenn ich den Debugger verwende. Zum Beispiel sagt der web.config Referenz etwas wie:

key = "mynamespace.mywebservice" value = add "http: // localhost: 55765/mywebservice.asmx"

Wenn ich schweben über den Cassini-Port Ich finde, dass der Webdienst in Port 55382 (oder einem anderen Nicht-55765-Port) ausgeführt wird. Kein Wunder, dass es es nicht finden kann.

Gibt es eine Möglichkeit zu erzwingen, dass die Portnummer, unter der es ausgeführt wird, die ist, die in der Webkonfiguration angegeben ist? Und wenn es nicht die Portnummer der Web-Konfiguration verwendet, um herauszufinden, wo es läuft ... wo entscheidet es? Ich weiß in VS2005, gab es eine Möglichkeit, die Portnummer beim Debuggen anzugeben, aber ich kann nirgendwo in dem Web-Service-Projekt in VS 2008 finden.

Dies wird wirklich Probleme verursachen als mehr Entwickler komm zu diesem Projekt - wie kann ich es beheben? Das Löschen und erneute Hinzufügen der Web-Services zu dem Projekt behebt es, aber ich würde es buchstäblich ein paar Mal am Tag tun müssen, keine ideale Lösung.

Antwort

1

Ich bin heute darüber gestolpert, als ich nach einer Lösung gesucht habe ... Wie oben erwähnt, können Sie die Lösung mit Notizblock öffnen. Suchen Sie nach der Zeile:

VWDPort = "55071" 

und ändern Sie die Portnummer, was Sie möchten. Speicher die Datei. Wenn Sie die Lösung geöffnet haben, sollten Sie aufgefordert werden, neu zu laden. Wenn VS nicht neu gestartet wird, sollte es gut gehen. Ich weiß nicht, ob es eine Option in VS gibt, aber das war ein einfacher Hack für mich.

0

Im VS2008 Solution Explorer: Klicken Sie mit der rechten Maustaste auf Ihr Webprojekt und wählen Sie Eigenschaften. Auf der linken Seite, klicken Sie auf "Web" und Sie sehen die Port-Optionen unter Server.

+0

Ja, das hat in VS2005 funktioniert. Ich habe keine "Web" -Option unter dem Web-Service in VS 2008. – BDW

+0

Ich habe gerade eine Web-Service-Anwendung zu meiner Lösung hinzugefügt, und ich habe die Option "Web". Nicht sicher, warum du es nicht hast. – JustLoren

3

von here

Standardmäßig weist Cassini eine zufällige Port-Nummer zu jeder Website beherbergt. Diese Portnummer erhält die beim ersten Start der Website mit dem Visual Studio-Debugger , und dann wird für die Lebensdauer der Lösung beibehalten.

Sie können dieses Verhalten durch Auswahl des Projektknoten für Ihr Webprojekt in Projektmappen-Explorer und Auswahl View-> Eigenschaftenfenster (Strg-W, P) deaktivieren. Ändern Sie "Verwenden Sie dynamische Ports" auf False und geben Sie dann einen TCP Port Ihrer Wahl (am besten, um diese zwischen 1000-5000 zu halten, aber es kann technisch jede nicht verwendete TCP-Port sein).

Dies gibt Ihrer Cassini-hosted Website eine deterministische Portnummer und es leichter zu Indigo Kunden , die auf dieser Website gehosteten Services schreiben verwenden.