Asp.Net MVC - SecurityException: источник не найден, но не удалось найти некоторые или все журналы событий. Недоступные журналы: безопасность - PullRequest
0 голосов
/ 30 октября 2018

Итак, я развертываю свой веб-сайт через AWS Elastic Beanstalk (с присоединенным к нему экземпляром AWS RDS), используя расширение AWS Toolkit в Visual Studio. Мое веб-приложение использует как службу sensenet, так и компонент веб-страниц sensenet. Службы sensenet являются обязательным компонентом, который должен существовать для использования другими компонентами sensenet. Компонент sensnet webpages предоставляет пользователю графический интерфейс администратора, и это то, что отображается при каждом посещении сайта.

Моя проблема - это исключение безопасности, которое возникает каждый раз, когда я захожу на свой веб-сайт (эта проблема не возникает при запуске через localhost).

Server Error in '/' Application.

Security Exception

Description: The application attempted to perform an operation not allowed by the security policy.  To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file. 

Exception Details: System.Security.SecurityException: The source was not found, but some or all event logs could not be searched.  Inaccessible logs: Security.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 

[SecurityException: The source was not found, but some or all event logs could not be searched.  Inaccessible logs: Security.]
   System.Diagnostics.EventLog.FindSourceRegistration(String source, String machineName, Boolean readOnly, Boolean wantToCreate) +441
   System.Diagnostics.EventLog.SourceExists(String source, String machineName, Boolean wantToCreate) +125
   System.Diagnostics.EventLog.SourceExists(String source) +23
   SenseNet.Diagnostics.SnEventLogger..ctor(String logName, String logSourceName) +71
   SenseNet.Configuration.<>c.<.ctor>b__153_0() in E:\BuildAgent\_work\63\s\src\Storage\Configuration\Providers.cs:83
   System.Lazy`1.CreateValue() +708
   System.Lazy`1.LazyInitValue() +184
   SenseNet.ContentRepository.RepositoryInstance.InitializeLogger() in E:\BuildAgent\_work\63\s\src\ContentRepository\RepositoryInstance.cs:350
   SenseNet.ContentRepository.RepositoryInstance.DoStart() in E:\BuildAgent\_work\63\s\src\ContentRepository\RepositoryInstance.cs:130
   SenseNet.ContentRepository.RepositoryInstance.Start(RepositoryStartSettings settings) in E:\BuildAgent\_work\63\s\src\ContentRepository\RepositoryInstance.cs:107
   SenseNet.ContentRepository.Repository.Start(RepositoryStartSettings settings) in E:\BuildAgent\_work\63\s\src\ContentRepository\Repository.cs:55
   SenseNet.Services.SenseNetGlobal.Application_Start(Object sender, EventArgs e, HttpApplication application) in E:\BuildAgent\_work\63\s\src\Services\SenseNetGlobal.cs:156
   DERContentRepository.MvcApplication.Application_Start(Object sender, EventArgs e, HttpApplication application) in Global.asax.cs:12
   SenseNet.Portal.Global.Application_Start(Object sender, EventArgs e) in E:\BuildAgent\_work\63\s\src\Services\Global.cs:16

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.3163.0

Несколько сообщений из stackoverflow, которые я прочитал, как эти

System.Security.SecurityException при записи в журнал событий

Источник не найден, но не удалось найти некоторые или все журналы событий. Недоступные журналы: Безопасность

говорил о запуске Visual Studio от имени администратора (это не сработало) и Создание раздела реестра с именем приложения. Последний подход Я почти уверен, что он будет работать при разработке, но не уверен, что он будет работать при развертывании. Есть идеи, как с этим справиться при развертывании сайта?

IIS Express 10

ASP.NET MVC v4.6.2

Windows Server 2016 v1.2.0

1 Ответ

0 голосов
/ 31 октября 2018

При запуске системы она пытается инициализировать компонент регистратора. При установке по умолчанию это простой регистратор событий, который пытается записать события в Журнал событий Windows - и если соответствующий журнал не существует, он пытается создать его на лету . В некоторых средах пользователь приложения не имеет (Windows) разрешений для этого, что является нормальным.

У вас есть несколько вариантов:

  • создать журнал событий вручную (см. createeventlog Инструмент SnAdmin здесь )
  • использовать другой регистратор, который записывает записи журнала где-то еще, а не журнал событий. Например, есть SnFileSystemEventLogger , который записывает записи в файловую систему. Чтобы настроить регистратор, вы можете использовать API построителя хранилища в MvcApplication:

`` `

public class MvcApplication : SenseNet.Portal.SenseNetGlobal
{
    protected override void Application_Start(object sender, EventArgs e, HttpApplication application)
    {
        ...
    }

    protected override void BuildRepository(IRepositoryBuilder repositoryBuilder)
    {
        repositoryBuilder.UseLogger(new SnFileSystemEventLogger());
    }
}
...