Как отловить ошибку отсутствующего параметра ASMX - PullRequest
0 голосов
/ 02 июля 2019

У меня есть простой веб-сервис с рядом функций.Некоторые из функций имеют параметры.Проблема, с которой я сталкиваюсь, заключается в том, что если пользователь нажимает URL-адрес веб-службы, а параметр не указан, я получаю сообщение об ошибке (отсутствует параметр: searchString.). Проблема заключается в том, что эта ошибка выдается до выполнения моего кода, поэтомуЯ не могу поймать это или отладить.Обычно это не имеет большого значения, но в нашей сети есть сканеры, которые улавливают эту ошибку и, поскольку она плохо отформатирована как json, помечена как проблема безопасности.Есть ли способ либо обработать ошибку (и выбросить мою собственную строку ошибки 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.

...