Вы на самом деле не отправляете данные XML на ваш веб-сервис. На данный момент, учитывая ваш пример кода, вы отправляете в стандартном HTML-кодированном формате:
field1=value1&field2=value2&field3=value3
Возможно, вам нужно изменить данные на XML, в соответствии с:
'<data><userName>' + userName + '</userName><pw>' + pw + '</pw></data>'
Чтобы выполнить последнее, вам также потребуется изменить сигнатуру веб-службы, чтобы она содержала одну строку, которая впоследствии десериализовалась:
[XmlRoot("data")]
public class UserRequestData
{
public string userName { get; set; }
public string pw { get; set; }
}
[WebMethod(EnableSession = true)]
[System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Xml)]
public DataTable loginUser(string xmlUserRequest)
{
XmlSerializer serializer = new XmlSerializer(typeof(UserRequestData));
StringReader reader = new StringReader(xmlUserRequest);
UserRequestData data = serializer.Deserialize(reader);
string userNme = data.UserName;
string pw = data.Pw;
......
}
Вероятно, также важно отметить, что атрибут, которым вы украсили свой метод обслуживания:
[System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Xml)]
Имеет отношение к возвращаемому значению метода обслуживания, а не к входным данным. Украсив этим, ваш ОТВЕТ будет отформатирован с xml. Это не влияет на вход в ваш сервис.
Надеюсь, это поможет.