We've developped a web service that is called by javascript clients using
the webservice.htc.
We've discovered that for certain clients we get the soap error
<faultstring>Unable to handle request without a valid action parameter.>
Please supply a valid soap action.</faultstring>
What I think is happening is their firewalls are either removing or
modifying the SoapAction header,
so I tried, as someone suggested in another thread, to add the following
attribute to the Web Service class:
[SoapDocumentService(RoutingStyle=SoapServiceRoutin gStyle.RequestElement)]
This poses no problems testing on the local machine, but still fails for the
live system with the same error.
So I tried adding (as someone else suggested):
[SoapDocumentMethod(Action="")] to each WebMethod, which then caused it to
start failing locally too!
There will be 1000s of non technical clients, changing monthly, so we don't
want to have to tell each one
how to configure their firewalls.
They may be using different browsers, other than IE, we don't want then to
have to install ActiveX controls either.
One thing is, I really don't think we need the overhead of soap. All
methods will take and return strings or null, so there's
no need for other datatypes.
I've read suggstions for not using soap, just http get or post, and other
suggestions on using an MSXml ActiveX
control (not too viable in our situation).
Perhaps it's something simple we've overlooked. Maybe we can modify the
webservice.htc. I've been staring at this
problem for a couple of days now, and read tons of posts, but none seem to
have the answers I'm looking for.
If anyone has any ideas on solving this, I'm open to suggestions.
Thanks,
Phil