Тип ответа веб-службы ASMX задается атрибутом ResponseFormat в отдельном веб-методе.
например:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
public Person GetPersonById(int id)
или
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public Person GetPersonById(int id)
Так что AFAIK ответ: нет - вы не можете вернуть оба (из одного метода).
Я уверен, что есть некоторые хаки, которые вы можете сделать, но это рекомендуемый способ.
Если вы хотите начать возвращать оба типа, вам следует перейти к более RESTful-подходу, либо с WCF REST, OData или ASP.NET MVC.
В этих технологиях вызываемый может указать желаемый тип ответа:
GET: http://api.yourdomain.com/person/1?format=json
GET: http://api.yourdomain.com/person/1?format=xml
Обратите внимание, что оба вызова являются одним физическим ресурсом.
С другой стороны, ваши вызовы веб-службы JSON должны быть HTTP POST , из соображений безопасности "The Goo" здесь .