10
votes

Toujours obtenir "Le format de demande n'est pas reconnu pour l'URL se terminant de manière inattendue ..."

Salutations,

J'ai regardé partout et chaque réponse que je vois me dit de mettre les suivantes dans mon web.config: p> xxx pré>

donc j'ai fait Ça et je reçois toujours l'erreur. p>

Voici le script de ma page Web: p> xxx pré>

et le webservice.vb est: P>

HTTP/1.1 500 Internal Server Error
Server: ASP.NET Development Server/10.0.0.0
Date: Mon, 28 Mar 2011 05:06:18 GMT
X-AspNet-Version: 4.0.30319
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 4444
Connection: Close

<html>
    <head>
        <title>Request format is unrecognized for URL unexpectedly ending in '/HelloWorld'.</title>
        <style>
         body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} 
         p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
         b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
         H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
         H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
         pre {font-family:"Lucida Console";font-size: .9em}
         .marker {font-weight: bold; color: black;text-decoration: none;}
         .version {color: gray;}
         .error {margin-bottom: 10px;}
         .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }
        </style>
    </head>

    <body bgcolor="white">

            <span><H1>Server Error in '/' Application.<hr width=100% size=1 color=silver></H1>

            <h2> <i>Request format is unrecognized for URL unexpectedly ending in '/HelloWorld'.</i> </h2></span>

            <font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ">

            <b> Description: </b>An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

            <br><br>

            <b> Exception Details: </b>System.InvalidOperationException: Request format is unrecognized for URL unexpectedly ending in '/HelloWorld'.<br><br>

            <b>Source Error:</b> <br><br>

            <table width=100% bgcolor="#ffffcc">
               <tr>
                  <td>
                      <code>

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.</code>

                  </td>
               </tr>
            </table>

            <br>

            <b>Stack Trace:</b> <br><br>

            <table width=100% bgcolor="#ffffcc">
               <tr>
                  <td>
                      <code><pre>

[InvalidOperationException: Request format is unrecognized for URL unexpectedly ending in &#39;/HelloWorld&#39;.]
   System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response) +518909
   System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext context, String verb, String url, String filePath) +212
   System.Web.Script.Services.ScriptHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String pathTranslated) +47
   System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) +203
   System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +128
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously) +184
</pre></code>

                  </td>
               </tr>
            </table>

            <br>

            <hr width=100% size=1 color=silver>

            <b>Version Information:</b>&nbsp;Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1

            </font>

    </body>
</html>
<!-- 
[InvalidOperationException]: Request format is unrecognized for URL unexpectedly ending in &#39;/HelloWorld&#39;.
   at System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response)
   at System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext context, String verb, String url, String filePath)
   at System.Web.Script.Services.ScriptHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String pathTranslated)
   at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)
   at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
-->


4 commentaires

Veuillez inclure l'erreur complète.


IIS 7? Si tel est le cas, les paramètres http doivent être définis dans la section Section de web.config


OK ... J'ai essayé de comprendre comment ajouter ces paramètres à la section System.webserver et je ne trouve pas de le trouver. Quand je les ajoutes, je reçois une erreur. Merci!


Aww mec, j'ai besoin d'une solution à cela.


5 Réponses :


0
votes

Obtenez-vous "Hello World" lorsque vous touchez ce service du navigateur?

Aussi, vous manque-t-il d'une trailing "/" dans l'URL?


1 commentaires

Oui, quand j'ai frappé le service du navigateur, je reçois "Hello World". Et j'ai essayé la fuite "/" et cela n'avait pas eu d'effet.



0
votes

Sont votre service Web et votre page Web dans la même solution ou exécutez-vous deux serveurs? J'ai eu le problème lorsque ma page Web appelait un service Web sur un autre serveur. Cela provoque des problèmes d'autorisation avec JavaScript.

Si vous utilisez un autre serveur, vous devrez peut-être créer un service Web proxy dans votre solution contenant la page Web. Ce service doit appeler le service Web dans votre autre solution. De votre page Web, vous appelez le service Web local qui redirigera votre appel sur celui sur l'autre serveur.


0 commentaires

2
votes

Je cherchais une solution à ce problème et j'ai trouvé cette question, et bien que je partageais ma solution de contournement / hack. J'utilise des services Web ASMX dans SharePoint et j'avais besoin d'une méthode ASMX pour réagir correctement à une demande de tête (apparemment, l'iTunes Store fait une demande de tête à votre URL de flux RSS avant de faire une demande d'obtention de la flux de téléchargement). De faire du googling, j'ai trouvé que ASMX Web Services ne prennent pas en charge les demandes de tête, ce qui semble être correct http://forums.asp.net/t/1442810.aspx/1

Connaître ASMX et la tête n'a pas bien joué ensemble et je ne voulais pas refaire tout dans WCF, j'ai essayé de Déterminez le hack de la moindre résistance. Après avoir conféré avec l'équipe, nous avons décidé de créer un module HTTP qui rechercherait des demandes de tête aux services Web ASMX et allez de l'avant et effectuez la demande d'obtention sur le serveur et de renvoyer les en-têtes. Je sais que c'est un peu gastronomique, mais il semble fonctionner aussi bien que je m'attendais à mes tests en curl / Firebug. Voici la plus grande partie du code du module HTTP. P>

public class HeadInterceptor : IHttpModule
{
    if (HttpContext.Current.Request.Url.AbsoluteUri.ToLower().Contains("asmx") 
        && HttpContext.Current.Request.HttpMethod == "HEAD")
    {
        WebRequest req = HttpWebRequest.Create(HttpContext.Current.Request.Url);
        req.Method = "GET";
        System.Net.WebResponse resp = req.GetResponse();
        HttpContext.Current.Response.Clear();
        foreach (string k in resp.Headers.AllKeys)
        {
            HttpContext.Current.Response.AddHeader(k, resp.Headers[k]);
        }
        HttpContext.Current.Response.End();
    }
}


0 commentaires

0
votes

Je déteste publier des réponses aux problèmes que je ne me comprends pas complètement, mais j'ai récemment couru dans ce problème aussi et je pensais partager ma solution plutôt particulière.

J'ai eu un service Web qui avait fonctionné bien pendant des mois et j'ai soudainement commencé à lancer le "format de demande n'est pas reconnue ..." Exception. Le service était déjà correctement configuré pour obtenir et poster des protocoles de sorte que ce n'était pas le problème. Je pensais peut-être qu'un autre coéquipier avait fait un changement web.config, mais ce n'était pas le cas non plus.

La solution, que j'ai rencontrée par accident, devait déposer un nouveau fichier Web.config vide dans le dossier contenant le site Web qui provoque une erreur de configuration non valide. Lors de la suppression du fichier web.config vide, le service Web a magiquement commencé à travailler à nouveau. Je ne comprends pas pourquoi il s'est cassé en premier lieu et je ne suis pas clair à 100% sur la raison pour laquelle cela lui a fixé, mais c'est fait. ymmv!


3 commentaires

Ce que vous avez effectivement fini par faire était de recycler votre pool de demande. C'était ce qui a corrigé le problème. Cela pourrait échouer à nouveau cependant.


@Jonathanvandevenais J'imagine que je recyclé le pool d'applications à un moment donné pendant le processus de dépannage, mais cela fait si longtemps que cela se produisait que je ne me souvenais pas des mesures préliminaires que j'ai prises, alors vous avez donc raison.


@Jonathanvandeveen, comment recycler le pool d'applications dans Dev?



0
votes

Sûrement, ce message arrive trop tard pour Dave, mais pourrait être utile à une personne qui reçoit ce message.

Je testais un service Web dans Internet Explorer et de Nulle part il commence à afficher cette erreur à chaque fois que j'invoque un service Web.

Certains débogage après avoir constaté que j'ai installé une application indésirable appelée chanceux saut . Cela ajoute une extension à Internet Explorer qui déclenche le message d'erreur.

Je le désinstallé (Panneau de contrôle -> Programmes (ou ajoutez des programmes) -> Désinstallez un programme) et a été à nouveau capable d'appeler mon service Web sans erreurs.

J'espère que cela vous aidera,


0 commentaires