Click here to Skip to main content
11,790,613 members (60,196 online)
Click here to Skip to main content

How to make your Web Reference proxy URL dynamic

, 30 Nov 2005 310.7K 72
Rate this:
Please Sign up or sign in to vote.
This is a quick helper to allow you to make the web reference URLs for your WSDL proxies easier to configure when switching environments.


I have been asked before, how to make the URL property for a web reference to a web service in a project, configurable in a config file instead of compiled in the web reference proxy. This is most useful when you want to deploy a project with a web reference between different business environments (like between Test/QA and Production) without recompiling the project. There is a simple way to do this that requires no coding at all on the developer's part (provided you are using Visual Studio for .NET).

Getting Started

To follow this article, first you need to have a compiled web service to reference, and a project in which you wish to add a web reference. After you have added your web reference (which creates the proxy class with references to the web service for you automatically using VS .NET), you need to set your solution view to 'Show All':

Solution Explorer Show All Files

This shows the Reference.cs file for the This is the proxy class file that VS.NET generates automatically for you when you add a web reference.

Open up this file and notice under the constructor for the proxy class that the URL is hard coded for you inside the constructor:

Sample screenshot

Changing the URL from Static to Dynamic

We are going to change the hard coded URL in the proxy class Reference.cs to a key in the web.config of the web service client project. An appSettings section will be added automatically with the current URL, and code will be placed in the Reference.cs proxy class constructor to look for the URL there. All this will be done by changing one property setting on the proxy reference.

If you look at the web reference properties (below):

Sample screenshot

you can see that there is a configuration setting called 'URL Behavior'. This setting is by default set to Static.

Sample screenshot

To make the URL in the Reference.cs map class code behind look for the web service URL in your web.config file, we need to change this setting to Dynamic:

Sample screenshot

Doing this in VS.NET does two things for you. It changes the Reference.cs file to have the code to look for the WSDL URL in the project's web.config file:

Sample screenshot

And it adds the URL as a key value to the projects web.config file under appSettings:

Sample screenshot

Now you can set the URL to different servers for deployment in different environments, without having to change the code. You just change the URL in your config file for your project.


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Christopher G. Lasater
Web Developer
United States United States
Christopher G. Lasater

I am also a published author, please check out my book:
ISBN: 1-59822-031-4
Title: Design Patterns
Author:Christopher G. Lasater
More from my web site

You may also be interested in...

Comments and Discussions

QuestionDynamic uses Settings.Settings, not web.config Pin
Member 119716339-Sep-15 5:11
memberMember 119716339-Sep-15 5:11 
QuestionAnother Option: Pin
LLloody1-Jun-15 6:52
memberLLloody1-Jun-15 6:52 
GeneralMy vote of 5 Pin
Amol_B26-Jun-13 20:05
professionalAmol_B26-Jun-13 20:05 
GeneralMy vote of 5 Pin
pen56015-Jan-13 19:44
memberpen56015-Jan-13 19:44 
GeneralMy vote of 1 Pin
rakeshhegishte4-Jun-12 2:14
memberrakeshhegishte4-Jun-12 2:14 
QuestionVS 2010 Pin
hidekiwing20-Mar-12 5:53
memberhidekiwing20-Mar-12 5:53 
QuestionI am not getting the code Pin
Kumar_Gaurav8-Feb-12 21:04
memberKumar_Gaurav8-Feb-12 21:04 
GeneralThanks Pin
Member 769377324-May-11 1:39
memberMember 769377324-May-11 1:39 
GeneralMy vote of 5 Pin
coreprojectthang14-Nov-10 21:44
membercoreprojectthang14-Nov-10 21:44 
GeneralDoesn't work with VS 2008 Pin
freephone13-Oct-10 14:59
memberfreephone13-Oct-10 14:59 
GeneralThank you Thank you Thank you Pin
adg123419-Sep-10 20:43
memberadg123419-Sep-10 20:43 
GeneralSeems slightly different for a Forms App ... (there is no web.config file) Pin
Martin Koster11-Jan-09 23:23
memberMartin Koster11-Jan-09 23:23 
GeneralIt only works if you don't use the WSE types Pin
stephg12317-May-08 6:54
memberstephg12317-May-08 6:54 
It seems in VS 2003 if you use dynamic URL then you can't use the WSE types.
Means If your project is configured to use WSE 2.0 and you add a web reference and call it AuctionServer. In AuctionServer you will always find 2 types: the "normal" type and the WSE type. Let's say you have a type AuctionServer.Auction then you also will have a AuctionServer.AuctionWSE.
This will let you use the DIME functionality in WSE 2.0 for example.
This AuctionWSE type will no longer be available if you use dynamic URL. Only AuctionServer.Auction will be available but not the WSE.
DOes anyone know why this is and how you could work it around?
GeneralThanks Pin
lcsistemas1-May-08 6:24
memberlcsistemas1-May-08 6:24 
GeneralThat is pretty staightforward. Pin
Member 45177303-Dec-07 10:00
memberMember 45177303-Dec-07 10:00 
GeneralIn VS05 WinForm and ClassLibrary projects applicationSettings section is used Pin
Michael Freidgeim7-May-06 17:09
memberMichael Freidgeim7-May-06 17:09 
GeneralA better way Pin
Ben Powell6-Dec-05 4:54
memberBen Powell6-Dec-05 4:54 
GeneralRe: A better way Pin
bass4g0d23-Jan-06 0:23
memberbass4g0d23-Jan-06 0:23 
GeneralRe: A better way Pin
mikker_1232-Apr-06 23:51
membermikker_1232-Apr-06 23:51 
AnswerRe: A better way Pin
Peter_Bridger19-Aug-10 23:24
memberPeter_Bridger19-Aug-10 23:24 
GeneralRe: A better way Pin
david markal30-Apr-12 2:40
memberdavid markal30-Apr-12 2:40 
GeneralRe: A better way Pin
Stuart Dobson7-Oct-12 17:48
memberStuart Dobson7-Oct-12 17:48 
GeneralIt works, sort of.... Pin
Zod The Mighty1-Dec-05 4:20
memberZod The Mighty1-Dec-05 4:20 
GeneralRe: It works, sort of.... Pin
chris lasater1-Dec-05 5:27
memberchris lasater1-Dec-05 5:27 
GeneralRe: It works, sort of.... Pin
Zod The Mighty1-Dec-05 6:54
memberZod The Mighty1-Dec-05 6:54 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.1509028.1 | Last Updated 30 Nov 2005
Article Copyright 2005 by Christopher G. Lasater
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid