2011-07-05 7 views
2

新しいWebフォームaspnet 4.0 Webサイトを構築し、NuGetを使用してElmah 1.2をインストールしました。私はweb.configにSQL Server Expressにログするための行を追加し、関連するテーブルと3つのストアドプロシージャを作成しました。私はelmah.axd/testを打ち、elmah.axdに戻って、確かに私のエラーがログに記録されているので、ローカル(Win 7/IIS 7.5)でもうまく動作します(vs2010 devサーバとローカルIISを実行しているとき)。Elmah 1.2はWindows 2008上のSQLにログオンしませんIIS7.5統合モード(ローカルで動作します)

私はサイトを私たちのdevサーバー(Win 2008 R2/IIS 7.5)に公開します。私がelmah.axdにヒットした場合、エラーはないことがわかります。次にelmah.axd/testに行き、Elmahに戻り、エラーは表示されません。 SQLの代わりにメモリへのロギングを切り替えると、すべて正常に動作します。

サイト内のすべてのストアドプロシージャに対して、アプリケーションプールユーザーに実行権を追加しました。私はElmahConnStringと呼ばれる別の接続文字列を作成し、SAとしてログインしました。まだ運がありません。 (私は、それが壊れていることを確認するためにsaから削除しようとしました。

私のウェブ設定は次のようになっています(ほとんどがNuGetに組み込まれています)。

<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> 

    ... 
     <connectionStrings> 
     <add name="ConnString" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=SiteData;Integrated Security=True" /> 
     </connectionStrings> 
     <elmah> 
     <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="ConnString" /> 
     <security allowRemoteAccess="yes" requirePermission="false"/> 
     </elmah> 
    ... 
     <system.web> 
     <httpModules> 
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" /> 
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" /> 
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" /> 
     </httpModules> 
     <httpHandlers> 
      <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory,   Elmah" /> 
     </httpHandlers> 
    ... 
    <system.webServer> 
     <validation validateIntegratedModeConfiguration="false" /> 
     <modules> 
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" /> 
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" /> 
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" /> 
      <add name="ErrorTweet" type="Elmah.ErrorTweetModule, Elmah" preCondition="managedHandler" /> 
     </modules> 
     <handlers> 
      <add name="Elmah" path="elmah.axd" verb="POST,GET,HEAD" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" /> 
     </handlers> 
     </system.webServer> 

あなたは、これが一番下にそのsystem.webserverチャンクで、この問題の最もwidly与えられた答えを網羅気づくでしょう: '(

私はそれを得ることはありません、私は何をしないのですか??

+0

これは2つの完全な時間です!まだ答えはありませんか? :P – Shawson

答えて

2

あなたがデータベースに挿入することはできませんが、それは、SQLの権限の問題ではないのか?たぶん

たぶん
  • ディスクのフル。
  • よIDENTITYカラムのないテーブルを作成しました。そこには1つのテーブルが必要です。

真剣に - 答えに2つの完全な時間を待つことはできませんでしたか?おそらくデータベースに挿入されているかもしれませんが、あなたはあまりにも速くチェックしています。

+1

Bang On! Elmah_Errorsテーブルの "Sequence"カラムがIdentity仕様を失ってしまったため、ローカルdevデータベースのスクリプティングがうまくいかなかったことが判明しました。私がSQLプロファイラでログオンしたとき、エラーを挿入するsprocsが一貫して失敗しているのを見ました.- sproc execをsql mgmt studioにコピーして貼り付けました。シーケンス列にNULLがついてしまいました。私は単純にアイデンティティの仕様を追加し、すべてが再び魔法のように働き始めました(horray!)正しい方向に私を指してくれてありがとう "ポール"ありがとう! – Shawson

関連する問題