Abrar Kazi Ответов: 1

Как решить проблему SQL server с ELMAH in ASP.NET MVC ?


<configuration>
  
  <configSections>
    <sectionGroup name="elmah">
      <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
      <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
      <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
      <section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
    </sectionGroup>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework" requirePermission="false" />
  </configSections>
  
  <connectionStrings>
    <add name="SCE" connectionString="metadata=res://*/SCE.csdl|res://*/SCE.ssdl|res://*/SCE.msl;provider=System.Data.SqlClient;provider connection string="data source=11.234.135.5;initial catalog=SCE2;persist security info=True;user id=ddd;password=sss;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
  </connectionStrings>
  
  <appSettings>
    <add key="webpages:Version" value="2.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="PreserveLoginUrl" value="true" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    <add key="ClientValidationEnabled" value="true" />
   
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />

  </appSettings>
  
  <system.web>
    <customErrors mode="Off" defaultRedirect="/Error/Error">
      <error statusCode="403" redirect="/Error/NoPermissions" />
    </customErrors>
    <globalization uiCulture="en-GB" culture="en-GB" />
    <compilation targetFramework="4.5" debug="true" />
    <httpRuntime targetFramework="4.5" maxRequestLength="10240" requestLengthDiskThreshold="10024000" enableVersionHeader="false" />
    
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Index" timeout="2880" />
    </authentication>
    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
    <sessionState timeout="2800" mode="StateServer">
    </sessionState>

    <httpHandlers>
      <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
    </httpHandlers>

    <httpModules>
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah"/>
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
    </httpModules>

  </system.web>
  
  <system.webServer>

    <handlers>
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />

      <add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />

    </handlers>


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


   
  </system.webServer>
  
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0" />
      </parameters>
    </defaultConnectionFactory>
  </entityFramework>

  <elmah>
    <security allowRemoteAccess="0" />
    <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="SCE"/>
    <errorMail from="admin@localhost.com" to="aazi@aa.com" subject="ELMAH Error Logged on SC" async="true"></errorMail>
  </elmah>

</configuration>


Что я уже пробовал:

Выше приведен мой файл web.configuration.
Проблема 1 : при плохом url-адресе письмо отправляется на emailid, но не сохраняется в базе данных Sql

проблема 2: я не могу видеть файл elmah.axd . Примечание: у меня есть формы режима аутентификации.

Пожалуйста помочь.

CHill60

Мы не можем ответить на ваши вопросы только с помощью конфигурационного файла!

Abrar Kazi

Это единственное кодирование для установки Elmah т. е. WebConfig

CHill60

Elmah предназначен для регистрации деталей ошибок. Ваше приложение пытается отправлять электронные письма и хранить данные в базе данных или вы пытаетесь получить Elmah по электронной почте подробную информацию о проблеме, а также хранить данные в базе данных. Это не ясно из вашего поста

Abrar Kazi

Да я пытаюсь сохранить ошибки в Sql Server а также я пытаюсь отправить электронное письмо

Suvendu Shekhar Giri

Вы пробовали отлаживать?
Что-нибудь, что вам нужно, чтобы точно определить проблему, а не весь этот файл web.config?

Abrar Kazi

как отладить файл Webcongif ? весь код для ElMAH находится в web config, насколько мне известно

1 Ответов

Рейтинг:
1

Richard Deeming

Вот очевидная проблема:

<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="SolutionCentreEntities"/>

Посмотри на свой <connectionStrings> раздел-единственная строка подключения, которую вы определили, - это соединение Entity Framework, называемое SCE.

ELMAH не использует Entity Framework. Вам нужно будет определить стандартную строку подключения SQL с именем SolutionCentreEntities, указывая на созданную вами базу данных ELMAH.

Если вы еще этого не сделали, вам придется это сделать. скачать[^] и запустите "MS SQL Server DDL Script".

The Ultimate ELMAH Tutorial: Logging to SQL Server[^]
Настройка ELMAH для использования SQL Server ~ andyfrench.info[^]


Abrar Kazi

Да, я создал еще один ключ для connectionstring и назначил его Elmah, чтобы войти в систему с ошибкой, используя эту строку подключения . Тем не менее он не вводит данные в базу данных sql. кроме того, я дал все разрешения на таблицу базы данных и скрипты .