2009-09-09 8 views
7

Ich habe eine Anwendung für das 2.0 .NET Framework. Die Lösung verwendet den VS-Webservice-Referenzordner. Ein Grep durch die Lösung zeigt, dass diese URL in einer Handvoll Dateien lebt. In der bereitgestellten Anwendung zeigt eine Suche jedoch, dass die URL nur in der .config-Datei vorhanden ist. Was ist mit dem .disco und .wsdl passiert? Sind sie in der EXE kompiliert? Grundsätzlich muss ich die URL aktualisieren und ich muss wissen, ob dies einen neuen Build erfordert.Kann ich eine Web-Service-Referenz-URL in der Konfigurationsdatei ändern?

Danke!

+0

möglich Duplikat von [Ist es möglich, die Eigenschaften einer WebReference in der Laufzeit zu ändern?] (Http://stackoverflow.com/questions/211510/is-it-possible-to-change-the-properties-of- a-webreference-in-run-time) –

Antwort

4

Ja, Sie können die URL ändern, auf die während der Laufzeit verwiesen wird.

Wenn es in einer .config-Datei ist, IIS wird Ihre App sollte die Änderung in der Datei .config erkennen und den neuen Wert laden. Wenn nicht, müssten Sie den Client neu starten. Vielleicht können Sie die Website in IIS stoppen und starten.

Weiter können Sie definitiv Ihren Code schreiben, um aus einer .config-Datei zu lesen.

var myWS = new MyWebService(); 
    myWS.Url = WebServiceURL; 
    myWS.SomeMethod();      

private static string WebServiceURL { 
    get { return ConfigurationManager.AppSettings["MyWebServiceURL"].ToString(); }   } 

Inzwischen in Ihrer .config Datei, Sie haben:

<appSettings> 
    <add key="MyWebServiceURL" value="http://blah/foo/bar.asmx" /> 
    </appSettings> 
+0

@pcampbell: Es macht Sinn für mich. –

+0

Ich spreche über die Konfiguration der Client-Anwendung, um auf die richtige URL zu zeigen. Nicht der Webdienst, der auf dem Server ausgeführt wird. Warum würde ich IIS zurücksetzen? – Nick

+0

Ich hatte das Szenario im Sinn einer Web-App, die die Einstellung aus der .config-Datei abruft. –

0

Sie können die URL in der Config-Web ändern (., Wenn der WebService unverändert bleibt nicht so sicher, ob die webService wie geändert)