2011-07-06 36 views
2

localhostから完全に動作するWebサービスがありますが、テストサーバーでホストしたときにエラーが発生しました。私はwsHttp Bindingを使用しています。このメソッドを除いて、クライアントサイドで他のすべてが正常に動作します。これは私が取得していますエラーですWebサービスのメソッドでアクセス拒否エラーが発生しました

クライアントエラー:

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 

た失敗したアセンブリのゾーン:私は追加 マイコンピュータ

私はサーバー上でエラーが発生しています。 サービスがイベントログに書き込めないため、このエラーが発生する可能性がありますか?

助けてください。

+0

あなたはその方法で正確に何をしていますか? –

+0

それはちょうどデータベースからいくつかの情報を取得します – Yugz

+0

私はサーバーから自分の投稿にエラーで追加しました。以前はサーバーにアクセスできませんでした – Yugz

答えて

2

サービスがホストされているプロセスを実行しているアカウントに、データベースへのアクセス権があることを確認してください。たとえば、IISの場合、サービスがホストされているアプリケーションプールを実行するアカウントには、データベースサーバーへのログインが必要であり、データベースに必要な操作をすべて実行するためのアクセス許可が必要です。

編集:

サーバースタックトレースはかなり単純です。 Windowsイベントログへの書き込みに問題があります。要求したソースが見つかりません。作成する権限がありません。

+0

アカウントにはデータベースへのアクセス権があります。他のメソッドは、問題のないデータだけを検索します。クライアント側のこの1つのメソッドは、バックグラウンドワーカーを使用していることが問題になる可能性がありますか? – Yugz

+0

クライアントとサーバーの両方でwcfトレースをオンにし、エラーの詳細を確認します。http://msdn.microsoft.com/en-us/library/ms733025.aspx –

+0

サービスとクライアントの両方でトレースが有効になっています。 – Yugz