The most likely reason for this is because the WSDL web service created will determine the address of the service endpoint as:
http://example.com:8080/service/service1.asmx
You can provide a separate static definition for WSDL and modify the following section to use port 80:
<wsdl:service name="Service1">
<wsdl:port name="Service1Soap" binding="tns:Service1Soap">
<soap:address location="http://example.com:8080/service/service1.asmxx" />
</wsdl:port>
<wsdl:port name="Service1Soap12" binding="tns:Service1Soap12">
<soap12:address location="http://example.com:8080/service/service1.asmx" />
</wsdl:port>
</wsdl:service>
This should force the client to consume WSDL and generate a stub code to bind to the correct port (which is the Apache server acting as a proxy server).
Another alternative method to make the correct address appear in the generated WDSL is to use it SoapExtensionReflectorto change the address locationon the fly:
WSDL - SoapExtensionReflector
.
, .NET, URL- :
WebClientProtocol.Url( MSDN)