Erreur d'accès Refusé pour une méthode de service web
J'ai un webservice qui fonctionne parfaitement à partir de localhost, mais quand je l'ai hébergé sur le serveur de test, j'obtiens une erreur sur l'une de ces méthodes. Je suis à l'aide de wsHttp de Liaison. tout le reste fonctionne bien sur le côté client, sauf pour cette méthode. C'est l'erreur que j'obtiens
erreur du client:
System.ServiceModel.Security.SecurityAccessDeniedException: Access is denied.
Server stack trace:
at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Erreur de serveur:
namespace.Service Error: 10001 : Error occurred in methodname().
System.Security.SecurityException: The source was not found, but some or all event logs could not be searched. Inaccessible logs: Security.
at System.Diagnostics.EventLog.FindSourceRegistration(String source, String machineName, Boolean readOnly)
at System.Diagnostics.EventLog.SourceExists(String source, String machineName)
at System.Diagnostics.EventLog.VerifyAndCreateSource(String sourceName, String currentMachineName)
at System.Diagnostics.EventLog.WriteEvent(EventInstance instance, Byte[] data, Object[] values)
at System.Diagnostics.EventLog.WriteEvent(EventInstance instance, Object[] values)
at System.Diagnostics.EventLogTraceListener.TraceEvent(TraceEventCache eventCache, String source, TraceEventType severity, Int32 id, String format, Object[] args)
at System.Diagnostics.TraceSource.TraceEvent(TraceEventType eventType, Int32 id, String format, Object[] args)
at AutoWatch.Entity.WcfService.TrackingService.UpdateIncidentStatusHistory(Int64 incidentId, String status, String username, String comment, Boolean SuspectFaultyUnit) in C:\..servicename.cs:line 566
at AutoWatch.Entity.WcfService.TrackingService.GetNewIncidentMessage(String username) in C:\..servicename.cs:line 444
La Zone de l'assemblée qui a échoué était:
Poste de travail
J'ai ajouté dans l'erreur, je suis arriver sur le serveur.
Est-il possible que j'obtiens ce message d'erreur parce que le service ne peut pas écrire dans le journal des événements?
S'il vous plaît aider.
- Quels sont exactement ce que tu fais dans cette méthode?
- il récupère simplement quelques informations de la base de données
- j'ai ajouté dans l'erreur à partir du serveur à mon poste. je n'ai pas accès au serveur précédemment
Vous devez vous connecter pour publier un commentaire.
À assurer l'exécution de vos processus où le service est hébergé dispose de droits d'accès à la base de données. Par exemple, en cas de IIS le compte de l'exécution de l'application de la piscine où le service est hébergé doit se connecter au serveur de base de données et il doit avoir l'autorisation de faire toutes les opérations nécessaires dans votre base de données.
Edit:
Le serveur trace de la pile semble assez simple. Vous avez un problème avec l'écriture de Journal des Événements de Windows! Il ne peut pas trouver la source que vous avez demandé et il n'a pas la permission de créer.