当消费WebService时,我得到了以下错误:
URL意外以/myMethodName结尾,请求格式无法识别
如何解决这个问题?
当消费WebService时,我得到了以下错误:
URL意外以/myMethodName结尾,请求格式无法识别
如何解决这个问题?
当前回答
我使用下面的代码行来解决这个问题。在web中编写以下代码。配置文件
<configuration>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="50000000"/>
</webServices>
</scripting>
</system.web.extensions>
</configuration>
其他回答
在html中,你必须将调用包含在一个带有GET的表单中
<a href="/service/servicename.asmx/FunctionName/parameter=SomeValue">label</a>
您还可以使用POST,其操作是web服务的位置,并通过输入标记输入参数。
还有SOAP和代理类。
确保您禁用了自定义错误。这可以掩盖代码中的原始问题:
改变
<customErrors defaultRedirect="~/Error" mode="On">
to
<customErrors defaultRedirect="~/Error" mode="Off">
为了记录,当我将一个旧应用程序从一个服务器移动到另一个服务器时,我得到了这个错误。我添加了<add name="HttpGet"/> <add name="HttpPost"/>元素到web。Config,它将错误更改为:
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at BitMeter2.DataBuffer.incrementCurrent(Int64 val)
at BitMeter2.DataBuffer.WindOn(Int64 count, Int64 amount)
at BitMeter2.DataHistory.windOnBuffer(DataBuffer buffer, Int64 totalAmount, Int32 increments)
at BitMeter2.DataHistory.NewData(Int64 downloadValue, Int64 uploadValue)
at BitMeter2.frmMain.tickProcessing(Boolean fromTimerEvent)
为了修复这个错误,我必须添加ScriptHandlerFactory行到web.config:
<system.webServer>
<handlers>
<remove name="ScriptHandlerFactory" />
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</handlers>
</system.webServer>
为什么在一个服务器上没有这些行,而在另一个服务器上没有,我不知道。
以我为例,当我从本地PC的Windows 10移动到安装Windows 2012的专用服务器时,出现了这个错误。 解决方案是添加到网络。配置以下行
<webServices>
<protocols>
<add name="Documentation"/>
</protocols>
</webServices>
尽管我发现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