visual studio net funciona example crear consumir como asp asp.net web-services

asp.net - studio - ¿Cómo soluciono un error "No se reconoce el formato de solicitud para URL..." en un servicio web que se ejecuta en IIS?



web service asp net c# example (3)

Como HTTP GET y HTTP POST están deshabilitados de forma predeterminada, intente agregar lo siguiente a su archivo de configuración:

<configuration> <system.web> <webServices> <protocols> <add name="HttpGet"/> <add name="HttpPost"/> </protocols> </webServices> </system.web> </configuration>

Recibo el siguiente error al ejecutar el servicio web en IIS:

Error de servidor en la aplicación ''/ Inbox Sevice''. El formato de solicitud no se reconoce para URL que termina inesperadamente en ''/ GetMailsInfo''. Descripción: se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Revise el seguimiento de la pila para obtener más información sobre el error y dónde se originó en el código.

Detalles de la excepción: System.InvalidOperationException: el formato de solicitud no se reconoce para la URL que termina inesperadamente en ''/ GetMailsInfo''.

Error de fuente:

Se generó una excepción no controlada durante la ejecución de la solicitud web actual. La información sobre el origen y la ubicación de la excepción se puede identificar utilizando el seguimiento de pila de excepción a continuación.

Stack Trace:

[InvalidOperationException: el formato de solicitud no se reconoce para URL que termina inesperadamente en ''/ GetMailsInfo''.]
System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler (Tipo de tipo, contexto HttpContext, solicitud HttpRequest, respuesta HttpResponse) +490982 System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler (contexto HttpContext, verbo de cadena, url de cadena, String filePath) +104
System.Web.Script.Services.ScriptHandlerFactory.GetHandler (HttpContext context, String requestType, String url, String pathTranslated) +127
System.Web.HttpApplication.MapHttpHandler (HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) +175 System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +120 System.Web.HttpApplication. ExecuteStep (paso IExecutionStep, booleano y completado sincrónicamente) +155

Información de la versión: Microsoft .NET Framework Version: 2.0.50727.42; Versión ASP.NET: 2.0.50727.42

¿Alguien sabe por qué estoy viendo este error y si hay alguna forma de solucionarlo?


Solo por interés (en el caso de acceder al servicio web a través de AJAX); Descubrí que si no se pasa un encabezado de "tipo de contenido" (incluso si es una solicitud local / "HttpPostLocalhost"), entonces ocurre el problema, por lo que paso el encabezado (por ejemplo, a través de ''$ .ajax de jQuery'' () ''Método en lugar de sin el método'' $ .getJSON () ''de jQuery), en lugar de recurrir a esto:

https://support.microsoft.com/en-us/kb/819267


Tengo el mismo problema. Para resolverlo, agrega [ScriptService] a tu servicio

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Script.Services; using System.Web.Services; namespace DemosAjaxcontroltoolkit { /// <summary> /// Summary description for WebService /// </summary> [ScriptService] [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. // [System.Web.Script.Services.ScriptService] public class WebService : System.Web.Services.WebService { [System.Web.Script.Services.ScriptMethod()] [WebMethod] public string[] GetWords(string prefixText, int count) { List<string> words = new List<string>(); words.Add("Apple"); words.Add("Appertizer"); words.Add("Apple tree"); words.Add("Apple Cider"); words.Add("Afternoon"); words.Add("Morning"); words.Add("Breakfeast"); words.Add("Lunch"); words.Add("Spider"); words.Add("Morning"); words.Add("Day"); words.Add("Travel"); words.Add("Night"); words.Add("Car"); words.Add("Bikes"); words.Add("Love"); words.Add("Good"); //return words.Where(w => w.StartsWith(prefixText)).Take(count).ToList(); //List<string> returnedList = words.Where(w => w.StartsWith(prefixText)).Take(count).ToList(); return words.Where(w => w.ToUpper().StartsWith(prefixText.ToUpper())).ToArray(); } } } }