Web事件提供程序“EventLogProvider”抛出以下异常

时间:2011-11-28 02:05:41

标签: asp.net .net iis-7 asp.net-4.0 windows-server-2008-r2

我无法在Windows 2008 R2中使用新的ASP.NET 4.0应用程序在IIS 7上运行。我在事件日志中看到的只是以下错误。我似乎无法找到任何有关它意味着什么的信息,有人可以帮忙吗?

Log Name:      Application
Source:        ASP.NET 4.0.30319.0
Date:          11/27/2011 4:22:13 PM
Event ID:      1301
Task Category: Web Event
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      [myserver].[mydomain].com
Description:
The following exception was thrown by the web event provider 'EventLogProvider' in the application '/[myapp]' (in an application lifetime a maximum of one exception will be logged per provider instance):

System.UnauthorizedAccessException: Attempted to perform an unauthorized operation.
   at System.Security.Principal.WindowsIdentity.get_AuthenticationType()
   at System.Web.Management.EventLogWebEventProvider.AddWebRequestInformationDataFields(ArrayList dataFields, WebRequestInformation reqInfo)
   at System.Web.Management.EventLogWebEventProvider.ProcessEvent(WebBaseEvent eventRaised)
   at System.Web.Management.WebBaseEvent.RaiseInternal(WebBaseEvent eventRaised, ArrayList firingRuleInfos, Int32 index0, Int32 index1)
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="ASP.NET 4.0.30319.0" />
    <EventID Qualifiers="49152">1301</EventID>
    <Level>2</Level>
    <Task>3</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2011-11-27T21:22:13.000000000Z" />
    <EventRecordID>1357</EventRecordID>
    <Channel>Application</Channel>
    <Computer>[myserver].[mydomain].com</Computer>
    <Security />
  </System>
  <EventData>
    <Data>EventLogProvider</Data>
    <Data>/[MyApp]</Data>
    <Data>System.UnauthorizedAccessException: Attempted to perform an unauthorized operation.
   at System.Security.Principal.WindowsIdentity.get_AuthenticationType()
   at System.Web.Management.EventLogWebEventProvider.AddWebRequestInformationDataFields(ArrayList dataFields, WebRequestInformation reqInfo)
   at System.Web.Management.EventLogWebEventProvider.ProcessEvent(WebBaseEvent eventRaised)
   at System.Web.Management.WebBaseEvent.RaiseInternal(WebBaseEvent eventRaised, ArrayList firingRuleInfos, Int32 index0, Int32 index1)</Data>
  </EventData>
</Event>

1 个答案:

答案 0 :(得分:6)

这是因为您的代码正在尝试写入事件日志,但运行应用程序池的用户没有此权限。

如果您无法更改应用程序池标识,则需要将应用程序池更改为以其他用户身份运行,或让您的网站模拟知名用户。