当消费WebService时,我得到了以下错误:
URL意外以/myMethodName结尾,请求格式无法识别
如何解决这个问题?
当消费WebService时,我得到了以下错误:
URL意外以/myMethodName结尾,请求格式无法识别
如何解决这个问题?
当前回答
确保你使用了正确的方法:Post/Get,正确的内容类型和正确的参数(数据)。
$.ajax({
type: "POST",
url: "/ajax.asmx/GetNews",
data: "{Lang:'tr'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) { generateNews(msg); }
})
其他回答
在html中,你必须将调用包含在一个带有GET的表单中
<a href="/service/servicename.asmx/FunctionName/parameter=SomeValue">label</a>
您还可以使用POST,其操作是web服务的位置,并通过输入标记输入参数。
还有SOAP和代理类。
极好的。
情况2 -同样的问题可以出现)在我的情况下,问题是由于以下一行:
<webServices>
<protocols>
<remove name="Documentation"/>
</protocols>
</webServices>
它在服务器上工作得很好,因为直接调用webservice函数——但是如果你在调试环境中直接从。net运行服务,并且想要手动测试运行该函数,则会失败。
确保您禁用了自定义错误。这可以掩盖代码中的原始问题:
改变
<customErrors defaultRedirect="~/Error" mode="On">
to
<customErrors defaultRedirect="~/Error" mode="Off">
尽管我发现90%的信息(在试图找到解决这个错误的方法时)告诉我将HttpGet和HttpPost添加到配置中,但这对我来说并不奏效…反正对我来说也说不通。
我的应用程序运行在很多服务器上(30多个),我从来没有为其中任何一个服务器添加过这个配置。在。net 2.0或。net 4.0下运行的应用程序的版本。
我的解决办法是重新注册ASP。NET对抗IIS。
我使用下面的命令行来实现这一点…
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
在我的情况下,我有一个重载的函数,导致这个异常,一旦我改变了我的第二个函数的名称,它运行正常,猜web服务器不支持函数重载