В моем проекте я использую Enterprise Library для подключения к базе данных. Он работает нормально, когда я запускаю приложение напрямую из Visual Studio.
Но это показывает ошибку подключения к базе данных при размещении в IIS на том же компьютере. Я добавил трассировку журнала и получил следующую ошибку
Ошибка разрешения зависимости, type = "Microsoft.Practices.EnterpriseLibrary.Data.Database", name = "(none)". Исключение произошло во время: при разрешении. Исключение: InvalidOperationException - невозможно создать базу данных типа. Вы должны настроить контейнер для предоставления этого значения. ----------------------------------------------- В это время исключения, контейнер был:
Разрешение Microsoft.Practices.EnterpriseLibrary.Data.Database, (нет) | Исключение: Microsoft.Practices.ServiceLocation.ActivationException: произошла ошибка активации при попытке получить экземпляр типа База данных, ключ "" ---> Microsoft.Practices.Unity.ResolutionFailedException: Ошибка разрешения зависимости, тип = "Microsoft.Practices. EnterpriseLibrary.Data.Database ", name =" (нет) ". Исключение произошло во время: при разрешении. Исключение: InvalidOperationException - невозможно создать базу данных типа. Вы должны настроить контейнер для предоставления этого значения. ----------------------------------------------- В это время исключения, контейнер был:
Разрешение Microsoft.Practices.EnterpriseLibrary.Data.Database, (none) ---> System.InvalidOperationException: невозможно создать базу данных типа. Вы должны сконфигурировать контейнер для предоставления этого значения.
в Microsoft.Practices.ObjectBuilder2.DynamicMethodConstructorStrategy.GuardTypeIsNonPrimitive (IBuilderContext context, SelectedConstructor selectedConstructor) в Microsoft.Practices.ObjectBuilder2.DynamicMethodConstructor. .StrategyChain.ExecuteBuildUp (IBuilderContext контекст) на Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlanCreatorPolicy.CreatePlan (IBuilderContext контексте, NamedTypeBuildKey buildKey) при Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp (IBuilderContext контекста) при Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp ( IBuilderContext context) в Microsoft.Practices.Unity.UnityContainer.DoBuildUp (тип t, существующий объект, имя строки, IEnumerable1 resolverOverrides)
1 resolverOverrides) в Microsoft.Practices.Unity.UnityContainer.DoBuildUp (тип t, имя строки, IEnu merable`1 resolverOverrides) в Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance (тип serviceType, строковый ключ) --- Конец трассировки стека внутреннего исключения --- в Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance (тип serviceType, String key ) в Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance [TService] (строковый ключ) в Microsoft.Practices.EnterpriseLibrary.Data.DatabaseFactory.InnerCreateDatabase (строковое имя)
--- End of inner exception stack trace --- at Microsoft.Practices.Unity.UnityContainer.DoBuildUp(Type t, Object existing, String name, IEnumerable
Моя web.config
службы содержится, как показано ниже
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data"/>
</configSections>
<dataConfiguration defaultDatabase="OracleConnection">
<providerMappings>
<add databaseType="Microsoft.Practices.EnterpriseLibrary.Data.Oracle.OracleDatabase, Microsoft.Practices.EnterpriseLibrary.Data" name="Oracle.DataAccess.Client"/>
</providerMappings>
</dataConfiguration>
<connectionStrings>
<add name="OracleConnection" providerName="Oracle.DataAccess.Client" connectionString="User Id=***;Password=****;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=*****)(PORT=1500)) (CONNECT_DATA=(SERVER = DEDICATED) (SERVICE_NAME =*****)));"/>
<add name="SybaseConnection" connectionString="providerName=Sybase.ASEOLEDBProvider;Server=****;Port=5050;Catalog=**;User Id=***;Password=****"/>
</connectionStrings>
Я много пробовал, но не смог найти причину проблемы. :(
Я проверил разрешение на папку, и у всех есть полный контроль. Служба WCF в IIS Анонимный доступ включен.
Может ли кто-нибудь помочь?