ELMAH в веб-интерфейсе MongoDB вызывает исключение

после настройки журналов в MongoDB с помощью ELMAH в пакете nuget MongoDB он успешно регистрируется в коллекции MongoDB, но при попытке доступа к веб-интерфейсу он дает мне следующее исключение:

Ошибка команды «создать»: коллекция «название коллекции» уже существует (ответ: { «примечание»: «параметр autoIndexId устарел и будет удален в будущем выпуске», «ок»: 0.0, «errmsg»: «коллекция 'название_коллекции' уже существует", "код" : 48, "кодовое имя" : "NamespaceExists" })

я не знаю, почему каждый раз, когда он пытается создать коллекцию, конфигурация веб-конфигурации для elmah:

 <sectionGroup name="elmah">
      <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
      <section name="errorLog" requirePermission="false" type="Elmah.FallbackErrorLogSectionHandler, Elmah.FallbackErrorLog" />
      <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
      <section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
    <!--<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />-->
  </sectionGroup>

 <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules>
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
    </modules>
  </system.webServer>
<elmah>


  <security allowRemoteAccess="true" />

  <errorLog type="Elmah.FallbackErrorLog, Elmah.FallbackErrorLog">
    <add type="Elmah.MongoErrorLog, Elmah.MongoDB" connectionStringName="elmah-mongodb"  />
    <add type="Elmah.XmlFileErrorLog, Elmah" logPath="C:\MyApp\logs\ElmahFallback" />
  </errorLog>
</elmah>
<location path="logs" inheritInChildApplications="false">
    <system.web>
      <httpHandlers>
        <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
      </httpHandlers>


      <authorization>
        <!--<allow roles="*" />-->
        <allow users="*" />  
      </authorization>

    </system.web>
    <system.webServer>
      <handlers>
        <add name="ELMAH" verb="POST,GET,HEAD" path="logs" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
      </handlers>
    </system.webServer>
  </location>

person Mary Alfred    schedule 13.08.2017    source источник
comment
Удалось ли вам найти решение этой проблемы? У меня сейчас такая же проблема..   -  person Mocolicious    schedule 19.02.2018


Ответы (1)


эта ошибка вызвана устаревшей функцией MongoDB 3.2 и выше (связанной с индексами при создании новой коллекции), попробуйте версию 3.0 mongos или измените драйвер mongo. Я использую этот пакет Install-Package elmah.mongodb в консоли пакета Visual Studio nuget и версии mongo 3.0 в c#.net, и он работает отлично.

Я надеюсь, что это поможет вам!!! удачи.

person Leonardo Chamba    schedule 17.06.2019