Это мой первый пост 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