How to change a web reference in a production .NET website

asp.netweb services

Our web reference does not seem to be defined in web.config of the website that consumes it. I found that there is a configuration file called "Reference.map" in the "Web References" folder that looks editable, but when I edit them nothing happens. I even renamed the WSDL file in the folder to see if it would get a new one. It did not.

Do I have to do a build just to change the URL of a referenced Web Service?

Best Answer

You can mark a web reference as static or dynamic URL. If you choose dynamic then it will add the URL to the web.config which you can then change in your production environment.

If it is marked as static then it is compiled into the binary and is not changeable without a rebuild.

If it is already dynamic then the code looks for the dynamic URL and then if it can't find it then it uses the default original. Therefore, you can just add an entry into the web config such as:

<applicationSettings>
    <MySystem.Properties.Settings>
        <setting name="MySystem_MyService" serializeAs="String">
            <value>http://mysystem/service.asmx</value>
        </setting>
    </MySystem.Properties.Settings>
</applicationSettings>