![]() |
|
Модераторы: gambit |
![]()
|
|
| Radekk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 11.4.2013 Репутация: нет Всего: нет |
win 7 x64 vs express 2013 for web
Как в приложении правильно указать дата провайдер
указываю провайдер(в моем случае феникс, так же сюда можно указать все начиная с мускула); в приложении в папке Bin лежит тот самый .нет провайдер FirebirdSql.Data.FirebirdClient.dll с оф сайта. при запуске выдает ошибку An exception of type 'System.Configuration.ConfigurationErrorsException' occurred in System.Data.dll but was not handled in user code Additional information: Failed to find or load the registered .Net Framework Data Provider. как мне правильно указывать провайдер приложению чтобы обойтись без установки FirebirdSql.Data.FirebirdClient.dll в глобальный кэш сборок(GAC)? |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 3 Всего: 118 |
пробывали указать FullName ?
Что выдает fuslogvw ? -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Radekk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 11.4.2013 Репутация: нет Всего: нет |
ResourceType.FullName - свойство Это вы про это? fuslogvw выдает такой поток информации что за раз сложно все пересмотреть и найти нужное. уже вроде зарегестрировал гакутилом эту длл, но все равно работать не хочет хоть убейся, да и в папку c:\Windows\assembly нужная длл не попадает хотя гакутил говорит что зарегестрирована. |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 3 Всего: 118 |
нет. Я говорю про Assembly.FullName
так разбирайтесь с ошибками - зачем всё-то смотреть... потому что GAC переехал в версиях старше .net2 ... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Radekk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 11.4.2013 Репутация: нет Всего: нет |
Вроде нашел *** Assembly Binder Log Entry (14.02.2014 @ 9:52:13) *** The operation was successful. Bind result: hr = 0x0. The operation completed successfully. Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll Running under executable C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Microsoft.VisualStudio.Web.Host.exe --- A detailed error log follows. === Pre-bind state information === LOG: DisplayName = FirebirdSql.Data.FirebirdClient (Partial) WRN: Partial binding information was supplied for an assembly: WRN: Assembly Name: FirebirdSql.Data.FirebirdClient | Domain ID: 2 WRN: A partial bind occurs when only part of the assembly display name is provided. WRN: This might result in the binder loading an incorrect assembly. WRN: It is recommended to provide a fully specified textual identity for the assembly, WRN: that consists of the simple name, version, culture, and public key token. WRN: See whitepaper http://go.microsoft.com/fwlink/?LinkId=109270 for more information and common solutions to this issue. LOG: Appbase = file:///c:/users/rlohmatov/documents/visual studio 2013/Projects/Testing/Testing/ LOG: Initial PrivatePath = c:\users\rlohmatov\documents\visual studio 2013\Projects\Testing\Testing\bin LOG: Dynamic Base = C:\Users\rlohmatov\AppData\Local\Temp\Temporary ASP.NET Files\root\0d641bac LOG: Cache Base = C:\Users\rlohmatov\AppData\Local\Temp\Temporary ASP.NET Files\root\0d641bac LOG: AppName = 4bbb80d4 Calling assembly : (Unknown). === WRN: No matching native image found. Сейчас перечитаю еще с десяток раз может и врублюсь в чем дело, если можете подсказать буду рад. по поводу GAC установил сегодня сборку firebirdsql.visualstudio.datatools gac показывает что установка успешна ссылка на нее появилась в c:\Windows\assembly то же самое пытаюсь сделать с firebirdsql.data.firebirdclient.dll gac выводит: C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools>gacutil -l firebirdsql.data.firebirdclient Microsoft ® .NET Global Assembly Cache Utility. Version 4.0.30319.18020 Copyright © Microsoft Corporation. All rights reserved. The Global Assembly Cache contains the following assemblies: firebirdsql.data.firebirdclient, Version=4.1.0.0, Culture=neutral, PublicKeyTo ken=3750abcc3150b00c, processorArchitecture=MSIL Number of items = 1 при запуске сайта из вижуал студии валится опять же $exception {"Unable to find the requested .Net Framework Data Provider. It may not be installed."} System.Exception {System.ArgumentException} dataProviderName "FirebirdSql.Data.FirebirdClient" string я что неправильно установил в гаке эту сборку??? выбрал сборку которая - FirebirdClient - .NET 4.0, 7-Zip archive На машине фреймворк тоже 4.0 стоит, уже ума не приложу куда копать. Не хочет работать и все тут. Заранее спасибо. Сильно не пинайте, я не волшебник - я только учусь. По поводу переезда гака вроде понял, но есть еще момент, приложение еще на версии 3.5 версии фреймворка, добавил провайдер для этой версии в гак, в web.config <DbProviderFactories> <add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient" description=".Net Framework Data Provider for Firebird" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient, Version=2.5.2.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c"/> </DbProviderFactories> И опять же та же самая ошибка, вроде и провайдер установил, и в приложении версию провайдера указал и все равно не хочет, не могу понять что я делаю не так. upd. Один из старых проектов, к который мне со всем остальным достался по наследству, запустился, у него на борту в папке Bin лежит длл с провайдером, работает нормально не ругается. Я вот сижу и думаю в чем причина, сравнил web.config файлы нашел лишь одно различие <assemblies> <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> <add assembly="FirebirdSql.Data.FirebirdClient, Version=2.5.2.0, Culture=neutral, PublicKeyToken=3750ABCC3150B00C"/> </assemblies> Поправил в приложении которое разрабатываю не помогло.... Может подскажет кто, как мне запихнуть правильно длл файл в бин чтоб работало все?? Это сообщение отредактировал(а) Radekk - 14.2.2014, 14:29 |
|||
|
||||
| jonie |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 3 Всего: 118 |
так вы накой черт записываете в веб конфиг свой версию, которой у вас нет? У вас другая версия же:
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
||||
|
|||||
| Radekk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 11.4.2013 Репутация: нет Всего: нет |
Извиняюсь видимо не совсем правильно отписал, я с чистым GAC в котором уже не было фаербердового дата провайдера подключал через длл (версии 2,5) и работало одно приложение, остальные так же ругались на отсутствие сборки в гаке. А когда установил 4 версию провайдера и в web.config указал версию и публичный ключ из GAC то ничегошеньки не работало выбивало ошибку, о том что провайдер не найден. В общем снес вчера 13 студию, поставил 12 студию, скачал FirebirdSql.Data.FirebirdClient.dll (NETProvider-3.2.0.0-NET35.7z в ней указано что под версию 3.5 фреймворка)под администратором скопировал в Program Files(x86), опять же под администратором запустил gacutil -i и записал ее в глобальную сборку и к моему удивлению заработало. Проблема в том что мне должны купить сейчас 13 версию и я боюсь повторения геморроя, а поддерживать старые приложения надо плюс еще и новые разрабатывать. Еще вопрос, с дата провайдерами надо устанавливать отдельный провайдер под каждую версию фреймворка???(я просто где-то вычитал, что версии фреймворка не поддерживают обратную совместимость и из-за этого возникают проблемы, правда пока не знаю относится ли это к дата провайдерам) Приложения написаны под 3.5, новая студия дает создавать только на 4.0 и 4.5 может из-за этого возникают проблемы? Ну то есть у нее приложение запускается под какой версией фреймворка?Или к WebForms это не относится??? Спасибо заранее. |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 3 Всего: 118 |
вы таки fuslogvw лог посмотрели? GAC там не особо нужен, если вы укажите нормальное полное имя сборки и класса, положив сбоственно сборку в bin каталог (обычно) асп.нет приложения с нужной битностью...
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Radekk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 11.4.2013 Репутация: нет Всего: нет |
да смотрел и не раз, чет совсем не понимаю, если в гаке прописано, то работает и в fuslogvw даже не появляется запись, пробовал смотреть "Запись ошибок привязки", там пусто, а сообщение "Не удалось найти запрошенного поставщика данных .net framework" вылазит с досадной постоянностью, на другом уже рабочем вебсайте все работает, фуслог показывает, что загружается сборка та которая в проекте, а не сборка из гака *** Assembly Binder Log Entry (15.05.2014 @ 9:53:32) *** The operation was successful. Bind result: hr = 0x0. The operation completed successfully. Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll Running under executable C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\11.0\WebDev.WebServer20.exe --- A detailed error log follows. === Pre-bind state information === LOG: User = YYYY\xxxxxx LOG: DisplayName = FirebirdSql.Data.FirebirdClient, Version=2.5.2.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c (Fully-specified) LOG: Appbase = file:///C:/MyFolder/New_websites/WebSiteName/ LOG: Initial PrivatePath = C:\MyFolder\New_websites\WebSiteName\bin LOG: Dynamic Base = C:\Users\xxxxxx\AppData\Local\Temp\Temporary ASP.NET Files\WebSiteName\5e59a13c LOG: Cache Base = C:\Users\xxxxxx\AppData\Local\Temp\Temporary ASP.NET Files\WebSiteName\5e59a13c LOG: AppName = 2aac5f Calling assembly : (Unknown). === LOG: This bind starts in default load context. LOG: Using application configuration file: C:\MyFolder\New_websites\WebSiteName\web.config LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config. LOG: Post-policy reference: FirebirdSql.Data.FirebirdClient, Version=2.5.2.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c LOG: GAC Lookup was unsuccessful. LOG: Attempting download of new URL file:///C:/Users/xxxxxx/AppData/Local/Temp/Temporary ASP.NET Files/WebSiteName/5e59a13c/2aac5f/FirebirdSql.Data.FirebirdClient.DLL. LOG: Attempting download of new URL file:///C:/Users/xxxxxx/AppData/Local/Temp/Temporary ASP.NET Files/WebSiteName/5e59a13c/2aac5f/FirebirdSql.Data.FirebirdClient/FirebirdSql.Data.FirebirdClient.DLL. LOG: Attempting download of new URL file:///C:/MyFolder/New_websites/WebSiteName/bin/FirebirdSql.Data.FirebirdClient.DLL. LOG: Assembly download was successful. Attempting setup of file: C:\MyFolder\New_websites\WebSiteName\bin\FirebirdSql.Data.FirebirdClient.dll LOG: Entering download cache setup phase. LOG: Assembly Name is: FirebirdSql.Data.FirebirdClient, Version=2.5.2.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c WRN: A duplicate assembly was found while copying the assembly item to the cache. LOG: Binding succeeds. Returns assembly from C:\Users\xxxxxx\AppData\Local\Temp\Temporary ASP.NET Files\WebSiteName\5e59a13c\2aac5f\assembly\dl3\bdb483eb\f47fc383_3116cd01\FirebirdSql.Data.FirebirdClient.dll. LOG: Assembly is loaded in default load context. в гаке стоит версия 3.2.0.0 и он ее не запускает, не могу никак понять почему из гака, если я добавил что грузить надо <assemblies> <add assembly="FirebirdSql.Data.FirebirdClient, Version=4.1.5.0, Culture=neutral, PublicKeyToken=3750ABCC3150B00C"/> </assemblies> сборку саму в бин папку, эффекта ноль |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 3 Всего: 118 |
У вас в bin лежит версия 2.5.2.0, в GAC - 3.2.0.0, вы патаетесь указать компоновщику чтобы он ссылался на 4.1.5.0 (которой вообще нет судя по-всему). 2.5.2 несовместима с 3.2.0, если только не указан BindingRedirect.. Короче мой вам совет : РАЗБЕРИТЕСЬ с мусором на машине, и что где лежит. ИЗУЧИТЕ где ищутся сборки. ПРОЧИТАЙТЕ про параметры в веб конфиге и про BindingRedirect. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Radekk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 11.4.2013 Репутация: нет Всего: нет |
На работающем лежит 2.5(в bin и web.config) и он запускается(с установленным 3.2.0 в гаке, лог я привел от этого веб сайта ( fuslogvw показывает сборка запускается из бин папки)) 4.1.5.0 в другом проекте, это скачанная из NuGet сборка, и вот версию 4.1.5.0 я не смог запустить из бина веб апликейшна (mvc 4 версия фреймворка 4.0) как я не бился, та же ситуация с веб сайтами(на этот момент в гаке была установлена версия 3.2). Неужто есть сборки которые без гака не запускаются? кстати сегодня еще раз попробовал, выбил 3.2.0.0 из GAC создал вебсайт куда в бин закинул сборку 3.2.0.0(в web.config указал сборку на 3.2.0.0) и она не захотела запускаться (опять же вебсайт у которого в бин лежит 2.5 и в конфиге она же прописана стартанул без проблем), с 4.1(опять же из NuGet, в бин и конфиге) тоже не захотел запускаться ссылаясь на его отсутсвие. еще может подскажете, в fuslogvw попытался выставить log bind faulures to disk при запусках веб сайтов туда почему-то ничего не пишется, не смотря на то что в бин лежит сборка которую должна запускаться вместе со всем сайтом. Насколько я понимаю, провайдера фаерберда надо ставить в GAC для того чтобы Visual Studio могла соединяться с ним, для проектов его достаточно просто добавлять в сам проект и все должно работать, но на деле что-то у меня не получается. вроде правильно расписал, а то в предыдущем посту получилась каша маленько. спасибо за помощь. |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 3 Всего: 118 |
права на каталог проверяйте. Проверяйте тажке разрядность сборок, версию фреймворка под которой запускаете сайт и т.д. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка под ASP.NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |