Хранимая процедура CLR, вызывающая экземпляр класса .NET - PullRequest
1 голос
/ 17 декабря 2008

Я кодировал хранимую процедуру CLR (перечислены ниже) Строка кода, где выбрасывается исключение, была добавлена ​​только для цель регистрации исключения в EventLog Я развернул сборку и создал сохраненный процесс в базе данных Однако, когда я выполняю хранимую процедуру, ни одна запись не регистрируется в Windows 'EventLog

Если код, в котором EventLog используется в отдельном консольном приложении Windows, регистрируется исключение

Любая помощь будет оценена

Спасибо

Арунгану

.......
using System.Diagnostics;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
.......
[Microsoft.SqlServer.Server.SqlProcedure]
public static SqlInt32 Posting(SqlString tag)
{
  try
  {
      ...
       throw new ArgumentException("arg exc");
      ...
      return 0;    //  success
  }
  catch (Exception e)
  {
      try
      {
          EventLog PostingLog = new EventLog("Application");
          PostingLog.Source = "Posting";
          PostingLog.WriteEntry(e.Message, EventLogEntryType.Error);
          PostingLog.Close();
          return 1;   //  error
      }
      catch  // in case when another exception is raised from the try block above
      {
          return 1;   // error
      }
  }
}

1 Ответ

2 голосов
/ 17 декабря 2008

IIRC, необходимо дать небезопасное разрешение на сборку.

...