对于意外结束的URL,无法识别请求格式

rom*_*n m 273 asp.net web-services

这不是一个问题 - 在此发布以供参考:

使用WebService时,出现以下错误:

对于意外以/ myMethodName结尾的URL,无法识别请求格式

rom*_*n m 501

这个网站上找到了解决方案

您只需将以下内容添加到web.config中即可

<configuration>
  <system.web>
    <webServices>
      <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
      </protocols>
    </webServices>
  </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)

来自Microsoft的更多信息

  • 我认为您需要做的就是将<system.web>切换到<system.webserver> (3认同)
  • 这也适用于IIS7 .Net2.0应用程序吗? (2认同)
  • 在带有IIS8的Win2012srv上,它是必需的.在带有IIS8的Win8上,不需要它.我所知道的配置中没有其他差异. (2认同)

fre*_*ler 17

尽管我找到的所有信息中有90%(试图找到这个错误的解决方案)告诉我添加HttpGetHttpPost配置,但这对我不起作用......反正我也没有意义.

我的应用程序在许多服务器(30+)上运行,我从来没有必要为其中任何一个添加此配置.在.NET 2.0或.NET 4.0下运行的应用程序版本.

我的解决方案是针对IIS重新注册ASP.NET.

我用以下命令行来实现这个目的......

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
Run Code Online (Sandbox Code Playgroud)


Has*_*anG 15

确保使用正确的方法:发布/获取,正确的内容类型和正确的参数(数据).

$.ajax({
    type: "POST",
    url: "/ajax.asmx/GetNews",
    data: "{Lang:'tr'}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) { generateNews(msg); }
})
Run Code Online (Sandbox Code Playgroud)


Kal*_*pat 10

高超.

案例2 - 同样的问题可以出现在我的情况下,问题是由于以下行:

<webServices>
  <protocols>
    <remove name="Documentation"/>
  </protocols>
</webServices>
Run Code Online (Sandbox Code Playgroud)

它在服务器中运行良好,因为直接调用Web服务函数 - 但是如果您在调试环境中直接从.Net运行服务并想要手动测试运行函数,则会失败.