Previously, I wrote a post about
Adding Service Reference in VS 2008. Adding Web Reference has been deprecated in VS 2008, as Microsoft now wants to promote WCF's Add Service Reference only. In this post we'll see basic differences in client proxy which have implemented Add Web Reference ( AWR ) and Add Service Reference ( ASR )
First difference is that to create AWR resources (proxy class and config) in WCF client you use wsdl.exe, whereas for ASR you use svcutil.exe
Now Imagine you have ASMX service
http://www.blogger.com/post-edit.g?blogID=2403430606101974989&postID=2436002957902424313#
whose reference you added onto a WCF client using AWR. So its app.config will look like the one below
<Consoleapp.Properties.Settings>
<setting name="ConsoleApp_MySvc_MyService" serializeAs="String">
<value>http://localhost/WCFWeb/MyService.asmx</value>
</setting>
</Consoleapp>
Now if you Add Service Reference of the same ASMX service on the same client, the app.config will look something like this
<endpoint address="
http://localhost/WCFWeb/MyService.asmx"
binding="basicHttpBinding" bindingConfiguration="ServiceSoap"
contract="ASMXRef.ServiceSoap" name="ServiceSoap"/>
<binding name="ServiceSoap" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288"
maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8"
transferMode="Buffered" useDefaultWebProxy="true">
<readerquotas maxDepth="32" maxStringContentLength="8192"
maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"
/>
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
So you can clearly note how ASR register additional level of detail like Bindings, Commincation parameters, transport security and message security info. Whereas AWR just registers a app.config key. This is difference between ASR and AWR from configuration information point.