Меню

Ошибка времени выполнения инициализатор типа выдал исключение

After installing .NET 4.0, I am now getting an exception on this statement:

 if (mainForm.versionNumber.Contains("BETA"))  

This is how versionNumber is defined:

public static string versionNumber = "1.1.1 " + compileDate.ToString("dd-MMM-yyyy");

and the run-time errorr is «TypeInitializationException». What changed from .NET v3.5 to 4.0 that would cause this? And how do I fix it?

UPDATE: here is the exception detail:

> System.TypeInitializationException was unhandled   Message=The type
> initializer for 'Media_Inventory_Manager.mainForm' threw an exception.
> Source=PragerMediaInventoryManager  
> TypeName=Media_Inventory_Manager.mainForm   StackTrace:
>        at Media_Inventory_Manager.Prager.Main() in D:Prager SoftwareMedia Inventory ManagerProgram.cs:line 36
>        at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
>        at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
>        at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
>        at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
>        at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
>        at System.Threading.ThreadHelper.ThreadStart()   InnerException: System.FormatException
>        Message=The string was not recognized as a valid DateTime. There is a unknown word starting at index 0.
>        Source=mscorlib
>        StackTrace:
>             at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
>             at System.DateTime.Parse(String s, IFormatProvider provider)
>             at Media_Inventory_Manager.mainForm..cctor() in D:Prager SoftwareMedia Inventory ManagerMain Form.cs:line 38
>        InnerException:

After installing .NET 4.0, I am now getting an exception on this statement:

 if (mainForm.versionNumber.Contains("BETA"))  

This is how versionNumber is defined:

public static string versionNumber = "1.1.1 " + compileDate.ToString("dd-MMM-yyyy");

and the run-time errorr is «TypeInitializationException». What changed from .NET v3.5 to 4.0 that would cause this? And how do I fix it?

UPDATE: here is the exception detail:

> System.TypeInitializationException was unhandled   Message=The type
> initializer for 'Media_Inventory_Manager.mainForm' threw an exception.
> Source=PragerMediaInventoryManager  
> TypeName=Media_Inventory_Manager.mainForm   StackTrace:
>        at Media_Inventory_Manager.Prager.Main() in D:Prager SoftwareMedia Inventory ManagerProgram.cs:line 36
>        at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
>        at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
>        at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
>        at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
>        at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
>        at System.Threading.ThreadHelper.ThreadStart()   InnerException: System.FormatException
>        Message=The string was not recognized as a valid DateTime. There is a unknown word starting at index 0.
>        Source=mscorlib
>        StackTrace:
>             at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
>             at System.DateTime.Parse(String s, IFormatProvider provider)
>             at Media_Inventory_Manager.mainForm..cctor() in D:Prager SoftwareMedia Inventory ManagerMain Form.cs:line 38
>        InnerException:

Alexandr_7

46 / 20 / 5

Регистрация: 29.12.2015

Сообщений: 1,771

1

Инициализатор типа «» выдал исключение. Не могу найти причину проблемы

04.05.2019, 18:49. Показов 19743. Ответов 3

Метки нет (Все метки)


Здравствуйте.
Мне C# выдает исключение на исполнение статического метода CreateSettingsGames();
Сообщения исключения:

Код

System.TypeInitializationException: "Инициализатор типа "AL7_Play_Sega_Games.src.AL7_SClassAd" выдал исключение."
ArgumentNullException: Значение не может быть неопределенным.
Имя параметра: contents

Проблема в том что куда бы я не поставил точку останова в модуле AL7_SClassAd она не действует. Такое чувство что исключение случается сразу как я вызываю метод. Вот код метода:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if (File.Exists(Application.StartupPath + @"ReadGames.txt") == true)
            {
                var FNGames = File.ReadAllLines(Application.StartupPath + @"ReadGames.txt");
                if (FNGames.Length <= 0) return;
 
                for (var i = 0; i < FNGames.Length; i++)
                {
                    if (FNGames[i].Length <= 0) continue;
 
                    var splFNGames = FNGames[i].Split('|');
 
                    SettingsGames.Games.Add(new AL7_Class_Game(Application.StartupPath + PathSettingsGames + splFNGames[0], splFNGames[1]));
                }
 
                FNGames = null;
 
                File.WriteAllLines(Application.StartupPath + @"ReadGames.txt", FNGames);
            }

Инициализатор типа "" выдал исключение. Не могу найти причину проблемы

Помогите решить проблему

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



46 / 20 / 5

Регистрация: 29.12.2015

Сообщений: 1,771

04.05.2019, 18:55

 [ТС]

2

Так. Решил проблему. Я пытался сохранить массив строк которому присвоенно null
У меня это происходило в другой библиотека. Вопрос тока какого фига C# не может показать на ошибку если она происходит в другой библиотеке. Дело в том что библиотека написана мной. Она является как отдельный проект но связан с главным.

А определил я это так. Просто инициализатор библиотеки был у меня прям в статическом классе. Я это вынес в отдельный метод и тогда уже смог определить что ошибка находится в библиотеке. Ну и дальше догадался почему.



0



Эксперт .NET

6266 / 3894 / 1567

Регистрация: 09.05.2015

Сообщений: 9,186

04.05.2019, 19:02

3

Обычно в InnerException видно где конкретно ошибка.



0



Эксперт .NET

16742 / 12494 / 3285

Регистрация: 17.09.2011

Сообщений: 20,722

04.05.2019, 23:34

4

Цитата
Сообщение от Alexandr_7
Посмотреть сообщение

какого фига C# не может показать на ошибку если она происходит в другой библиотеке

C#-то здесь при чем?
Выполнение отладчик прерывает, а не C#.
Прерывание при выбросе исключения происходит либо тогда, когда выброс этого исключения отмечен для прерывания, либо тогда, когда исключение валит приложение. Поскольку исключение бросает метод, который вызывается в статическом конструкторе, это исключение перехватывается средой выполнения, оборачивается в TypeInitializationException и уже пробрасывается дальше. Именно это исключение и перехватывает отладчик и показывает точку, в котором оно было выброшено.



1



Я вижу три строки, которые могут быть виновниками:


Public Shared sConnection As String = ConfigurationManager.ConnectionStrings("SerialStamperConnectionString").ConnectionString

Здесь есть несколько потенциальных проблем. Во-первых, ваше имя строки подключения («SerialStamperConnectionString») неверно. Если это имя не совпадает с ключом в web.config, то будет возвращено Nothing, вызывая исключение NullReferenceException при попытке получить значение ConnectionString имущество.


Public Shared oConnection As New MySqlClient.MySqlConnection(sConnection)

Возможно, указанная выше строка подключения неправильно настроена в файле web.config, поэтому возвращается Nothing как ConnectionString. Если для sConnection установлено значение Nothing, вполне возможно, что в моем конструкторе MysqlConnection может быть выброшено исключение NullReferenceException.


Dim Response As New HttpResponse(HttpWriter.Null)

If HttpWriter.Null is Nothing то это также может быть источником вашей проблемы (по той же причине, что и выше).


Если ни одно из этих предложений не вызывает проблемы, я бы предложил опубликовать дополнительную информацию о вашей проблеме (включая трассировку стека). Предложение миллиона очков репутации не даст нам никакой дополнительной информации о вашем коде.


ДОПОЛНЕНИЕ
Согласно документации VB по общим конструкторам (и, соответственно, членам):

Точное время запуска общих конструкторов в основном зависит от реализации, хотя предоставляется несколько гарантий, если общий конструктор определен явно:

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

9.3.2 Общие конструкторы

Вам может оказаться полезным создать конструктор Shared, в котором можно инициализировать ваши общие поля:

Public Shared sConnection As String
Public Shared oConnection As MySqlClient.MySqlConnection

Shared Sub New()
    Dim l_connectionString = ConfigurationManager.ConnectionStrings("SerialStamperConnectionString")
    If l_connectionString IsNot Nothing Then
        sConnection = l_connectionString.ConnectionString
        oConnection = New MySqlClient.MySqlConnection(sConnection)
    Else
        ' What to do here?
    End If
End Sub

Скорее всего, это не решит вашу проблему, но может облегчить поиск и обработку (пустая строка и т. д.).

When I try to run my tests I get TypeInitializationException.

The piece of code;
var moc = new Mock<ITankBatteryUnitOfWorkProvider>(); moc.Setup(s => s.GetUnitOfWork()).Returns(() => null); <-- Here

Exception:
OneTimeSetUp: System.TypeInitializationException : Инициализатор типа "HMI.Test.Report.AbsReportJobTest" выдал исключение. ----> System.TypeInitializationException : Инициализатор типа "Moq.ProxyFactory" выдал исключение. ----> System.TypeInitializationException : Инициализатор типа "Moq.CastleProxyFactory" выдал исключение. ----> System.IO.FileLoadException : Не удалось загрузить файл или сборку "Castle.Core, Version=4.1.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc" либо одну из их зависимостей. Найденное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040) ----> System.IO.FileLoadException : Не удалось загрузить файл или сборку "Castle.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc" либо одну из их зависимостей. Найденное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040) Exception doesn't have a stacktrace

Moq 4.8.2
Castle.Core 4.2.1

Thank you!

Требуется подключить базу данных, чтобы была возможность пользоваться программой и с другого компьютера. Нужно проверять имя пользователя и пароль с данными из бд. Однако появляется ошибка:

Необработанное исключение типа «System.TypeInitializationException» в System.Data.dll».

Как исправить?

string dirPath = new FileInfo($"{Assembly.GetAssembly(GetType()).Location}").DirectoryName;
string dbName = "login_database.mdf";    
string connectionString = $@"Data Source=(LocalDB)MSSQLLocalDB;AttachDbFilename={dirPath}{dbName};Integrated Security=True";
SqlDataAdapter sda = new SqlDataAdapter("select * from Table_dict where user='"+text_login.Text+"'and password ='"+text_pass.Text+"'", connectionString);
DataTable dt = new DataTable();
sda.Fill(dt);
if (string.IsNullOrEmpty(text_login.Text))
{
    MessageBox.Show("Пожалуйста, введите логин и пароль!", "Message", MessageBoxButtons.OK, MessageBoxIcon.Warning);
    text_login.Focus();
    return;
} 
try
    if(dt.Rows.Count==1)
    {
        main m = new main();
        m.Show();
    }
    else
    {
        MessageBox.Show("Пожалуйста, проверьте правильность написания логина и пароля.");
    }
}
catch (Exception EX)
{
    MessageBox.Show(EX.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
}}

Message=Инициализатор типа «System.Data.SqlClient.SqlConnection» выдал исключение.
Source=System.Data
TypeName=System.Data.SqlClient.SqlConnection

Message=Инициализатор типа «System.Data.SqlClient.SqlConnectionFactory» выдал исключение.
Source=System.Data
BareMessage=Система конфигурации не прошла инициализацию

Вероятнее всего, ошибка в App.config. Строка подключения :

 <system.data>    
      <DbProviderFactories>
          <clear />
          <add name="SQL Data Provider" invariant="Sql.Data.SqlClient"
          description=".Net Framework Data Provider for SQL"
          type="Sql.Data.SqlClient.SqlClientFactory, Sql.Data, 
        Version=6.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
        </DbProviderFactories>
      </system.data>    

Проблема

При попытке запустить надстройку Point Layout в Revit появляется сообщение об ошибке.

  • Ошибки могут возникать при нажатии кнопки «Получить лицензию» или при экспорте точек.

Ошибка (для продолжения необходимо выполнить ознакомление):

Инициализатор типа для ‘<модуль>’ бросил исключение.

Ошибка 1

Сообщение об ошибке компоновки точки

При нажатии на вкладку «Подробности», когда появляется запрос «Ошибка необрабатываемого исключения», отображается следующее сообщение:

System.IO.FileLoadException: Не удалось загрузить файл или сборку GTPS_Utils& или одну из зависимостей. Недопустимый указатель (исключение из HRESULT: 0x80004003 (E_POINTER) —> System.NullReferenceException: Не указана ссылка на экземпляр объекта. at Stabiplan.ExportExcel.Client.UserinterfaceLayer.Platform.RVExportExcelApplication.HandleAssemblyResolve(Object sender, ResolveEventArgs) at System.AppDomain.OnAssemblyResolveEvent(RuntimeAssembly, String assemblyFullName)

Причины

Надстройка блокирует работу функции компоновки точек.

Решение

Для устранения этой проблемы удалите надстройку, которая вызывает ошибку.

  • Известные надстройки, о которых мы сообщали:
    • Средства повышения производительности
    • Запущены надстройки для экспорта и импорта Excel от компании Trimble
    • Синоним термина «шкаф»
    • Компоненты MEP: электрические схемы
    • Компоненты MEP: проемы для MEP
    • Компоненты MEP: экспорт и импорт в Excel

Определение надстройки, которая вызывает ошибку

  1. Переместите все надстройки в папку надстройки Point Layout во временную папку на компьютере.
  2. Добавьте одну надстройку обратно в папку надстроек.
  3. Перезапустите Revit и попробуйте получить лицензию.
  4. Повторите операцию для надстройки, пока ошибка не появится снова.

Продукты

Revit; Макет точки;

В проекте WPF был такой случай. Моя проблема была на следующей строке:

DataTable myTable = FillTable(strMySqlQuery);

Где FillTable() возвращает DataTable на основе строки запроса SQL. Если бы я сделал опцию «исключение копирования в буфер обмена», я думаю, что она была, и вклеена в «Блокнот», я мог видеть сообщение. Для меня это было The input is not a valid Base-64 string as it contains a non-base 64 character.

Моя фактическая проблема заключалась не в том, что в строке запроса было что-то, чего не должно было быть, как я думал, потому что string strMySqlQuery = "SELECT * FROM My_Table" была моей строкой и считала, что это может быть * или _, но фактическая проблема была в FillTable(), где у меня был вызов другой функции, GetConnection(), которая вернула объект OracleConnection, чтобы открыть его и получить и вернуть DataTable. Внутри GetConnection() я получал параметры app.config для моей строки подключения, и у меня было одно из них, поэтому оно устанавливало значение null для пароля учетной записи службы и не делало соединение с БД. Так что не всегда, где ошибка в точности соответствует всем обстоятельствам. Лучше всего погрузиться в функцию, где ошибка, и отлаживать шаг за шагом, и обеспечить, чтобы все значения заполнялись тем, что вы ожидаете.

Всем привет, столкнулся с такой проблемой при запуске ЦА шарика

выскакивает вот такое сообщение:

Ошибка выполнения

Описание: На сервере возникла ошибка приложения. Текущая особая настройка ошибок для этого приложения не позволяет отобразить сведения об ошибке данного приложения.

Сведения: Для разрешения просмотра сведений данного сообщения об ошибке на локальном сервере создайте тег <customErrors> в файле конфигурации «web.config», который находится в корневом каталоге текущего веб-приложения.
В теге <customErrors> следует задать атрибут «mode» со значением «RemoteOnly». Для разрешения просмотра сведений об ошибке на удаленных компьютерах задайте для «mode» значение «Off».

<!-- Файл конфигурации Web.Config -->

<configuration>
    <system.web>
        <customErrors mode="RemoteOnly"/>
    </system.web>
</configuration>

Примечания: Отображаемую в данный момент страницу ошибок можно заменить на пользовательскую страницу ошибок, изменив атрибут «defaultRedirect» тега конфигурации <customErrors> приложения
таким образом, чтобы он содержал URL-адрес пользовательской страницы ошибок.

<!-- Файл конфигурации Web.Config -->

<configuration>
    <system.web>
        <customErrors mode="On" defaultRedirect="mycustompage.htm"/>
    </system.web>
</configuration>

перед тем как данная проблема появилась пытался исправить ошибку :  Kerberos Event ID 4

Клиент Kerberos получил ошибку KRB_AP_ERR_MODIFIED с сервера spb-srv-sp02$. Использовалось целевое имя HTTP/spb-srv-sp02.домен.ru. Это означает, что целевому серверу не удалось расшифровать билет, предоставленный клиентом. Это возможно,
когда целевое SPN-имя зарегистрировано на учетную запись, отличную от учетной записи, используемой конечной службой. Убедитесь, что целевое SPN-имя зарегистрировано только на учетную запись, используемую сервером. Эта ошибка также
может возникать, если пароль целевой службы отличается от пароля, заданного для нее в центре распространения ключей Kerberos. Убедитесь, что пароли в службе на сервере и в центре распространения ключей совпадают. Если имя сервера задано не полностью
и конечный домен (домен.RU) отличается от домена клиента (домен.RU), проверьте эти два домена на наличие учетных записей серверов с одинаковыми именами или используйте для идентификации сервера полное имя.

следывал по инструкции:

https://support.microsoft.com/ru-ru/help/832769/how-to-configure-a-windows-sharepoint-services-virtual-server-to-use-kerberos-and-ntlm-authentication

cscript adsutil.vbs set w3svc/1/root/NTAuthenticationProviders «Negotiate,NTLM»

После применения  этой команды  перестал запускаться ЦА… подскажите как исправить как
запустить ЦА???

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка времени выполнения значение было недопустимо малым или недопустимо большим для int32
  • Ошибка времени выполнения входная строка имела неверный формат readln