WebService缺少参数

时间:2018-08-23 09:18:51

标签: asp.net vb.net web-services soapui asmx

根据stackoverflow,这是一个非常受欢迎的问题,但是我没有发现任何可以解释这种情况的东西:

我有一个WebService

<WebService(Namespace:="https://testingStuff.com/webservices/")>
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)>
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
<System.Web.Script.Services.ScriptService()>
Public Class TestWebService
    Inherits System.Web.Services.WebService

    <WebMethod(EnableSession:=True)>
    Public Sub Test(ByVal p1 As String, ByVal p2 As String, ByVal p3 As String)
        Try
           ...
           ...

当我转到... https://testingStuff.com/App_Controls/TestWebService.asmx并选择“测试方法”时,我看到每个文本带有文本框的表单。我正在为它们输入值,然后单击“调用”。结果是这个例外

System.InvalidOperationException: Missing parameter: p1.
   at System.Web.Services.Protocols.ValueCollectionParameterReader.Read(NameValueCollection collection)
   at System.Web.Services.Protocols.UrlParameterReader.Read(HttpRequest request)
   at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
   at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()

我也遇到类似的异常,但是如果我在soapUI中尝试这样做:

使用https://testingStuff.com/App_Controls/TestWebService.asmx/TEST?p1=value1&p2=value2&p3=value3并且选择了Method:POST的REST 原始异常看起来像这样

{"Message":"Invalid web service call, missing value for parameter: \u0027p1\u0027.","StackTrace":"   at System.Web.Script.Services.WebServiceMethodData.CallMethod(Object target, IDictionary`2 parameters)\r\n   at System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary`2 parameters)\r\n   at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)\r\n   at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException"}

我发现的类似问题大多包含“检查参数名称”或将“获取”切换为“发布答案”。在这种情况下不是这样

我显然缺少了一些东西,所以您能帮我理解一下什么吗?

编辑:

有趣的事情要指出。如果我在本地进行测试,则将值放入并按invoke即可正常工作。但是,在SoapUI情况下,缺少参数的问题仍然存在。

编辑2:

我尝试从不带参数的REST POST方法调用(本地,基于“ Hello World” .asmx),并且...我工作得很好。所以我猜测出于某种原因POST只是丢弃了参数,然后抱怨他想念它们……是的...

仍然实际

0 个答案:

没有答案