如何捕获ASMX缺少参数错误

时间:2019-07-02 15:50:28

标签: asp.net ajax vb.net asmx

我有一个简单的Web服务,具有许多功能。一些功能具有参数。我遇到的问题是,如果用户点击Web服务URL,但未提供参数,则会收到错误消息(缺少参数:searchString。)问题是在执行代码之前引发了此错误,因此我无法捕获或调试。通常,这没什么大不了的,但是我们网络上的扫描仪会收到此错误,并且由于格式不正确,因此它被标记为安全问题。有没有办法处理错误(并抛出我自己的json错误字符串)或将自动生成的错误字符串格式化为json?这是我的代码:

    ' To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
    <System.Web.Script.Services.ScriptService()>
    <System.Web.Services.WebService(Namespace:="http://tempuri.org/")>
    <System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)>
    <ToolboxItem(False)>
    Public Class GeneralWebServices
        Inherits System.Web.Services.WebService

<WebMethod()>
    Public Function GetAllMyData(ByVal searchString As String) As String
        Dim tokens As List(Of TokenField) = New List(Of TokenField)
        'break point on the code above is not hit
        Try

            'code to create the object tokens.
            Return JsonConvert.SerializeObject(tokens)

        Catch ex As Exception
            Throw
        Finally               
            tokens = Nothing               
        End Try    
    End Function     


    End Class

然后,如果我将浏览器指向https://localhost:44321/GeneralWebServices.asmx/GetAllMyData

我的代码上有一个断点,但从未被击中。它只是在浏览器响应中显示以下错误:缺少参数:searchString。

0 个答案:

没有答案