Как я могу обрабатывать и записывать исключения, выданные в приложении EntityFrameworkDataService - PullRequest
0 голосов
/ 06 апреля 2019

Это мой первый пост SO, поэтому прошу прощения за любое нарушение этикета, и спасибо всем за помощь.

Я работаю с RESTful WCF EntityFrameworkDataService, реализуя IDataServiceEntityFrameworkProvider, который предоставляет нашу базу данных клиентамиспользуя протокол OData.

Большая часть моего опыта связана с приложениями ASP.Net Web Forms, которые имеют файл Global.asax с событием Application_Error, предоставляя значимую информацию об ошибках, вставленную в базу данных SQL Server.(Трассировка стека и т. Д.) Я хочу сделать то же самое в моей службе данных, но нет файла Global.asax.Как мне обработать это событие (или его эквивалент) в этой службе данных WCF?

Необходимость - я пытаюсь помочь разработчику, который создал клиентское приложение, использующее службу данных, которая работает вПроблемы и сообщение службы дает ему минимальную обратную связь от службы данных.Было трудно помочь ему без журнала ошибок.

Я понимаю, что многие (если не все) проблемы, с которыми он сталкивается, могут быть не исключениями для приложений, но для охвата моих баз, которые я хотел быменьше всего ловите исключения приложения службы данных,

Внутри события InitializeService службы я установил для свойства конфигурации UseVerboseErrors значение «true», но, похоже, это предоставляет информацию о клиенте, а не мне.

'This is my data service class, (DataService.svc,) with authentication removed, and other non-demonstrative methods.

Imports System
Imports System.Data.SqlClient
Imports System.Collections.Generic
Imports System.Data.Services
Imports System.Data.Services.Common
Imports System.Data.Services.Providers
Imports System.ServiceModel.Web
Imports System.Web
Imports System.Text
Imports System.Security.Principal
Imports Newtonsoft
Imports System.Data
Imports System.Data.Entity.Core
Imports System.Linq

<System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults:=True,
[Namespace]:="http://example.com/")>
<RM_API.JSONPSupportBehavior>
Partial Public Class DataService
    Inherits EntityFrameworkDataService(Of rmrsEntities)
    Implements IDataServiceEntityFrameworkProvider

    Public ReadOnly Property EdmSchemaVersion As MetadataEdmSchemaVersion Implements IDataServiceEntityFrameworkProvider.EdmSchemaVersion
        Get
            Return MetadataEdmSchemaVersion.Version3Dot0
        End Get
    End Property

    Public Shared Sub InitializeService(ByVal config As DataServiceConfiguration)
        'Configuration.
        config.SetEntitySetAccessRule("*", EntitySetRights.All)
        config.DataServiceBehavior.AcceptAnyAllRequests = True
        config.SetServiceOperationAccessRule("*", ServiceOperationRights.All)
        config.SetServiceActionAccessRule("*", ServiceActionRights.Invoke)
        config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3
        config.DataServiceBehavior.AcceptProjectionRequests = True
        config.DataServiceBehavior.AcceptCountRequests = True
        'config.AnnotationsBuilder = CreateAnnotationsBuilder(Function() serviceContext)
        config.DataServiceBehavior.AcceptReplaceFunctionInQuery = True
        config.DataServiceBehavior.AcceptSpatialLiteralsInQuery = True
        config.DisableValidationOnMetadataWrite = True

        config.UseVerboseErrors = True

    End Sub

    Protected Overrides Sub OnStartProcessingRequest(ByVal args As ProcessRequestArgs)


        '*** I do authentication here ***

        MyBase.OnStartProcessingRequest(args)


    End Sub

End Class
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...