2015-07-16 3 views
-1

Я продолжаю получать эту ошибку, и я не знаю, как ее исправить.Сохраненные процедуры не работают (System.TypeInitializationException)

Исключение типа «System.TypeInitializationException» произошло в WebApplication1.dll, но не был обработан в пользовательском коде

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

В моей конфигурации у меня есть ConnectionString так:

<connectionStrings> 
<add name="DefaultConnection" 
    connectionString="data source=PC\SQLEXPRESS;database=db;uid=dbuser;pwd=E1485517-5C5B-4D85-AFD3-0A4C4522F8BD" 
    providerName="System.Data.SqlClient" /> 
</connectionStrings> 

и здесь я хочу использовать хранимую процедуру:

public static Student GetStudentById(int studentid) 
{ 
    DbCommand dbCommand = DB.GetSqlStringCommand("GetStudentById"); 
    dbCommand.CommandType = CommandType.StoredProcedure; 

    DB.AddInParameter(dbCommand, "@id", DbType.Int32, studentid); 

    using (IDataReader dr = DB.ExecuteReader(dbCommand)) 
    { 
     if (dr.Read()) 
     { 
      return new Student 
      { 
       fullname = dr.GetString(dr.GetOrdinal("fullname")) 
      }; 
     } 
    } 

    return null; 
} 

Любой ключ, что мне не хватает?

Это строка: DbCommand dbCommand = DB.GetSqlStringCommand("GetStudentById"); Сообщение об исключении на голландском языке, в переводе это будет: «Функция инициализации типа для BaseDAL вызвала исключение». Мой BaseDAL выглядит следующим образом:

using Microsoft.Practices.EnterpriseLibrary.Data; 

public class BaseDAL 
{ 
    public static Microsoft.Practices.EnterpriseLibrary.Data.Database DB = DatabaseFactory.CreateDatabase("db"); 
} 

EDIT: Я только что нашел эту проблему, не удалось Войти для пользователя, поэтому он не работает.

+1

Какая линия делает исключение вышвырнут на? –

+0

Отсутствует сообщение об исключении. – CodeCaster

+0

Является ли эта функция частью класса, который строится? –

ответ

-1

Попробуйте это:

перейти в пул приложений -> Расширенные настройки и установите Identity из Process Model в Local System.

enter image description here

+0

Что? Зачем вам это делать? – CodeCaster

+0

У меня был тот же самый вопрос при входе в систему пару недель назад, когда я пытался получить доступ к localdb из IIS. Это изменение сработало для меня. –

+0

Это программирование вуду. Вы не знаете, что делает это изменение, но оно работает, поэтому вы продолжаете применять его. Учетная запись LocalSystem является учетной записью полуадминистратора, которую вы ** никогда не должны использовать ** как идентификатор пула приложений, поскольку она предоставляет всю вашу систему, используя ваше веб-приложение в качестве панели удаленного управления для хакеров. Не делайте такие вредные предложения другим, если вы не понимаете их проблемы.Вы можете использовать комментарии, чтобы попросить OP проверить ваши подозрения; не публикуйте догадки как ответы. – CodeCaster

Смежные вопросы