WSDL is not available by default for ASMX Web Services deployed to _VTI_BIN

Some SharePoint solution might require creating custom ASMX Web Services that operates within the context of SharePoint 2010, and there is a good description of how to create and deploy ASMX Web Service for SharePoint

However, after Web Service is built and deployed to _vti_bin folder you might experience one issue that <service>.asmx/?WSDL returns "<404> Page not found" error. This error is only specific to the _vti_bin folder, and service returns ?WSLD description if deployed to other folders (for example to _layouts).

The fix is adding "<protocols><add name="Documentation"/></protocols>" to the WebServices element of web.config of webservice.