Бьюсь второй день ....
От: кубик  
Дата: 15.02.21 09:31
Оценка: :)
Привет всем,

Бьюсь второй день, вот такой глюк, мож кто знает!
Программа падает с ошибкой The type initializer for 'System.Data.SqlClient.SqlConnection' threw an exception при исполнении как CGI в IIS.
Просто маленькая программа состоящая только из new SQLConnection, НО ... есть такая же программа, точно такие же настройки, и она не падает, а работает.

Факты:
1. progA.exe и ProgB обе на Net 2.0 И одни и те же References
2. Обе выполняют только new SQLConnection, return. (я все повыкидывал для отладки)
3. В комманд лайне обе работают.
4. IIS pool работает от того же юзера что и я сам в консоли.
5. В IIS не работает только одна (выполняются в одной и тоже дир. , один и тот же .config)
6. Переименование А в В, В в А не влияет.
7. При компиляции Net 4 Обе не работают с той же ошибкой.


Unhandled Exception: System.TypeInitializationException: The type initializer for 'System.Data.SqlClient.SqlConnection' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Data.SqlClient.SqlConnectionFactory' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Data.SqlClient.SqlPerformanceCounters' threw an exception. ---> System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize ---> System.ArgumentException: Illegal characters in path.
   at System.Security.Permissions.FileIOPermission.HasIllegalCharacters(String[] str)
   at System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, AccessControlActions control, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList)
   at System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess access, String path)
   at System.AppDomainSetup.VerifyDir(String dir, Boolean normalize)
   at System.Configuration.ClientConfigPaths..ctor(String exePath, Boolean includeUserConfig)
   at System.Configuration.ClientConfigPaths.GetPaths(String exePath, Boolean includeUserConfig)
   at System.Configuration.ClientConfigurationHost.get_ConfigPaths()
   at System.Configuration.ClientConfigurationHost.GetStreamName(String configPath)
   at System.Configuration.ClientConfigurationSystem..ctor()
   at System.Configuration.ConfigurationManager.EnsureConfigurationSystem()
   --- End of inner exception stack trace ---
   at System.Configuration.ConfigurationManager.EnsureConfigurationSystem()
   at System.Configuration.ConfigurationManager.GetSection(String sectionName)
   at System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName)
   at System.Diagnostics.DiagnosticsConfiguration.Initialize()
   at System.Diagnostics.Switch.InitializeConfigSettings()
   at System.Diagnostics.Switch.InitializeWithStatus()
   at System.Diagnostics.Switch.get_SwitchSetting()
   at System.Data.ProviderBase.DbConnectionPoolCounters..ctor(String categoryName, String categoryHelp)
   at System.Data.SqlClient.SqlPerformanceCounters..ctor()
   at System.Data.SqlClient.SqlPerformanceCounters..cctor()
   --- End of inner exception stack trace ---
   at System.Data.SqlClient.SqlConnectionFactory..ctor()
   at System.Data.SqlClient.SqlConnectionFactory..cctor()
   --- End of inner exception stack trace ---
   at System.Data.SqlClient.SqlConnection..cctor()
   --- End of inner exception stack trace ---
   at System.Data.SqlClient.SqlConnection..ctor()
   at parser.parser.Main(String[] args)
Отредактировано 15.02.2021 9:37 кубик . Предыдущая версия .
Re: Бьюсь второй день ....
От: Ночной Смотрящий Россия  
Дата: 15.02.21 09:43
Оценка: 6 (1)
Здравствуйте, кубик, Вы писали:

К>Программа падает с ошибкой The type initializer for 'System.Data.SqlClient.SqlConnection' threw an exception при исполнении как CGI в IIS.

К>Просто маленькая программа состоящая только из new SQLConnection, НО ... есть такая же программа, точно такие же настройки, и она не падает, а работает.

https://stackoverflow.com/questions/17927975/illegal-characters-in-path-error-when-connecting-to-sql-server
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[2]: Бьюсь второй день ....
От: кубик  
Дата: 15.02.21 09:50
Оценка:
Спасибо за ответ!
Есессно я гуглил, никаких connection strings нет
просто голый конструктор. new SQLConnection() дает такую ошибку. В одной проге работает в другой нет
Обе программы сделаны позавчера примерно в одно и тоже время. Для них нет еще никаких "забытых настроек".
Re[3]: Бьюсь второй день ....
От: Ночной Смотрящий Россия  
Дата: 15.02.21 09:59
Оценка: 6 (1) :)
Здравствуйте, кубик, Вы писали:

К>просто голый конструктор. new SQLConnection() дает такую ошибку. В одной проге работает в другой нет

К>Обе программы сделаны позавчера примерно в одно и тоже время. Для них нет еще никаких "забытых настроек".

Стектрейс смотрел? Дело не в бобине (sqlconnection)
 at System.AppDomainSetup.VerifyDir(String dir, Boolean normalize)
 ...
 at System.Configuration.ClientConfigurationHost.get_ConfigPaths()
 ...
 at System.Diagnostics.DiagnosticsConfiguration.Initialize()


Ставь туда бряку и смотри чего там пошло не так. Навскидку вот ишью есть — https://github.com/dotnet/runtime/issues/25027 . Закрыто в мастере год назад. У тебя версия дотнета какая? Если младше 5 — скорее всего оно.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re: Бьюсь второй день ....
От: varenikAA  
Дата: 16.02.21 01:44
Оценка: 6 (1) +1
Здравствуйте, кубик, Вы писали:
System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize ---> System.ArgumentException: Illegal characters in path.
путь к файлу конфигурации или права на файлы и каталоги.
1. проверить скопировав в c:\tmp и запустив
2. на вкладке безопасность папки с exe дать полные права пользователю ИИС.
3. почему CGI? это же трэш на IIS писать цги на дотнете.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Бьюсь второй день ....
От: кубик  
Дата: 16.02.21 04:19
Оценка:
AA>3. почему CGI? это же трэш на IIS писать цги на дотнете.

Надо деплоить на много компов, что б админы не мучались. Периодически обновлять — при cgi даж пул не надо рестартовать. Иногда запустить в консоли.
CGI легко отлаживать. Что б внурь нелазили. Нагрузка небольшая. Что б на линукс легко перенеслось. А что может быть лучше ?
Re[3]: Бьюсь второй день ....
От: varenikAA  
Дата: 16.02.21 05:32
Оценка: 10 (2) +2
Здравствуйте, кубик, Вы писали:


К>CGI легко отлаживать. Что б внурь нелазили. Нагрузка небольшая. Что б на линукс легко перенеслось. А что может быть лучше ?

asp.net core
1 прекрасно работает под линуксом
2 не привязан к IIS (встроенный kestrel http server — позволяет запускать как IIS(различные варианты, в том числе cgi), как консоль или как виндос-сервер.
3 не приаязан к runtime (self-container)
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[4]: Бьюсь второй день ....
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.02.21 21:20
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>У тебя версия дотнета какая? Если младше 5 — скорее всего оно.


Он же в самом начале написал — Net 2.0
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.