Я разработал API отдых в VB.net Все работает нормально, но иногда кажется, что сервис API ломается. У меня есть 2 вопроса:
a) Как я могу заново запустить службу API из кода vb. net? Когда служба API выходит из строя, я должен перекомпилировать приложение API, и оно снова работает нормально. Я могу определить, когда служба не работает, но я не знаю, как мне перезапустить код vb. net. Я ищу в Интернете и не нашел (может быть, я не очень хорошо написал вопрос)
b) Как мне написать общую обработку ошибок для описания ошибок, которые я не могу отловить обычными способами, Возобновите ошибку и ИЗБЕГАЙТЕ СЛОМА ВНИЗ и узнайте, почему сервис не работает
Я написал этот код в модуле
Imports System.Net
Imports System.Net.Http
Imports System.Web.Http
Imports System.Web.Http.Description
Imports System.Threading
Imports System.Threading.Tasks
Imports System.Web.Http.ExceptionHandling
Imports System.Web.Http.Results
Imports System.Web.Http.Filters
Public Class GlobalExceptionHandler
Inherits ExceptionHandler
Public Overrides Function ShouldHandle(ByVal context As ExceptionHandlerContext) As Boolean
Return True
End Function
Public Overrides Sub Handle(ByVal context As ExceptionHandlerContext)
Trace.WriteLine(context.Exception.Message)
context.Result = New TextPlainErrorResult With {
.Request = context.ExceptionContext.Request,
.Content = "lo siento algo fue mal." & "Please contact so we can try to fix it."
}
End Sub
Private Class TextPlainErrorResult
Public Property Request As HttpRequestMessage
Public Property Content As String
Public Function ExecuteAsync(ByVal cancellationToken As CancellationToken) As Task(Of HttpResponseMessage)
Dim response = New HttpResponseMessage(HttpStatusCode.InternalServerError) With {
.Content = New StringContent(Content),
.RequestMessage = Request
}
Return Task.FromResult(response)
End Function
End Class
End Class
Когда я хочу зарегистрировать его в webapiconfig.vb, я вставляю этот код (добавление Imports System.Web.Http.ExceptionHandling)
config.Services.Replace(TypeOf (IExceptionHandler), New api3.GlobalExceptionHandler())
, но ошибка представляет собой фид, показывающий IExceptionHandler тип интерфейса, и его нельзя использовать в качестве выражения
Я проверяю все Возможности, но я не могу найти ошибку.
Пожалуйста, кто-нибудь может помочь? Заранее благодарю и прошу прощения за моего бедного Энгли sh