Ошибка доступа запрещена для метода в веб-сервисе - PullRequest
2 голосов
/ 06 июля 2011

У меня есть веб-сервис, который отлично работает с localhost, но когда я размещаю его на тестовом сервере, я получаю сообщение об ошибке в одном из методов. Я использую wsHttp Binding. все остальное прекрасно работает на стороне клиента, за исключением этого метода. Это ошибка, которую я получаю

ошибка клиента:

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)

Ошибка сервера:

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

Зона сборки, которая потерпела неудачу, была: MyComputer

Я добавил ошибку, полученную на сервере. Возможно ли, что я получаю эту ошибку, потому что служба не может записать в журнал событий?

Пожалуйста, помогите.

1 Ответ

2 голосов
/ 06 июля 2011

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

Edit:

Трассировка стека сервера выглядит довольно просто. У вас проблема с записью в журнал событий Windows! Он не может найти запрашиваемый вами источник и не имеет разрешения на его создание.

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