The excellent tutorial ".NET Web Services Tutorial" by Shiv Pal Singh is very helpful, but I have questions that are not answered there.

1. Aren't most web services deployed as .DLLs?

2. The .asmx file header contains the source code (.cs) file as a parameter. Why? Is this only if the web service is not deployed as a .DLL?

3. When I create a web service from the "ASP.NET Web Service" template, what is the difference between "Build Solution" and "Publish Web Site"?

4. When I build my web service solution, no assembly (.DLL) is produced. But when I publish my web site, I get a .DLL. Is that how this is supposed to work?

Thank you for enlightening me!