EntLibContrib.Data.OdpNet.OracleDatabase无法解析

时间:2013-08-21 15:04:22

标签: c# asp.net-mvc iis iis-7.5 odp.net

我一直在努力将ASP.NET MVC网站部署到IIS 7.5,我遇到以下错误消息:

[ArgumentException: The type 'EntLibContrib.Data.OdpNet.OracleDatabase, EntLibContrib.Data.OdpNet, Version=5.0.505.0, Culture=neutral, PublicKeyToken=null' cannot be resolved. Please verify the spelling is correct or that the full type name is provided.]
   Microsoft.Practices.EnterpriseLibrary.Common.Configuration.AssemblyQualifiedTypeNameConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value) +189
   Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DbProviderMapping.get_DatabaseType() +48
   Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSyntheticConfigSettings.GetDatabaseData(ConnectionStringSettings connectionString, DatabaseSettings databaseSettings) +38
   Microsoft.Practices.EnterpriseLibrary.Data.Configuration.<get_Databases>d__0.MoveNext() +272
   System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +460
   System.Linq.Enumerable.ToList(IEnumerable`1 source) +58
   Microsoft.Practices.EnterpriseLibrary.Data.Configuration.<DoGetRegistrations>d__10.MoveNext() +137
   System.Linq.WhereSelectEnumerableIterator`2.MoveNext() +85
   System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +381
   System.Linq.Enumerable.ToList(IEnumerable`1 source) +58
   Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSyntheticConfigSettings.GetRegistrations(IConfigurationSource configurationSource) +161
   Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.TypeLoadingLocator.<GetRegistrations>b__0(ITypeRegistrationsProvider p, IConfigurationSource cs) +8
   Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.TypeLoadingLocator.GetRegistrationsInternal(IConfigurationSource configurationSource, Func`3 registrationAccessor) +74
   Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.TypeLoadingLocator.GetRegistrations(IConfigurationSource configurationSource) +80
   Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.CompositeTypeRegistrationsProviderLocator.<GetRegistrations>b__0(ITypeRegistrationsProvider l, IConfigurationSource cs) +8
   Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.<>c__DisplayClass5.<GetRegistrationsInternal>b__4(ITypeRegistrationsProvider l) +16
   System.Linq.<SelectManyIterator>d__14`2.MoveNext() +234
   Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.Unity.UnityContainerConfigurator.RegisterAllCore(IConfigurationSource configurationSource, ITypeRegistrationsProvider rootProvider) +127
   Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.ChangeTrackingContainerConfigurator.RegisterAll(IConfigurationSource configurationSource, ITypeRegistrationsProvider rootProvider) +23
   Microsoft.Practices.EnterpriseLibrary.Common.Configuration.EnterpriseLibraryContainer.ConfigureContainer(ITypeRegistrationsProvider locator, IContainerConfigurator configurator, IConfigurationSource configSource) +19
   Microsoft.Practices.EnterpriseLibrary.Common.Configuration.EnterpriseLibraryContainer.ConfigureContainer(IContainerConfigurator configurator, IConfigurationSource configSource) +117
   Microsoft.Practices.EnterpriseLibrary.Common.Configuration.EnterpriseLibraryContainer.CreateDefaultContainer(IConfigurationSource configurationSource) +59
   Microsoft.Practices.EnterpriseLibrary.Common.Configuration.EnterpriseLibraryContainer.SetCurrentContainerIfNotSet() +80
   Microsoft.Practices.EnterpriseLibrary.Common.Configuration.EnterpriseLibraryContainer.get_Current() +5
   InventoryScanner.DataAccess.RepositoryBase..ctor() in c:\Users\michaelj\Desktop\warehouse server\InventoryScanner\InventoryScanner\InventoryScanner.DataAccess\RepositoryBase.cs:56
   InventoryScanner.DataAccess.ScannerRepository..ctor() in c:\Users\michaelj\Desktop\warehouse server\InventoryScanner\InventoryScanner\InventoryScanner.DataAccess\ScannerRepository.cs:18
   InventoryScanner.Common.Logger.LogHelper..ctor() in c:\Users\michaelj\Desktop\warehouse server\InventoryScanner\InventoryScanner\InventoryScanner.Common.Logger\LogHelper.cs:26
   InventoryScanner.Web.Filters.LogExceptionFilterAttribute..ctor() in c:\Users\michaelj\Desktop\warehouse server\InventoryScanner\InventoryScanner\InventoryScanner.Web.Filters\Filters.cs:19
   InventoryScanner.Web.WebApiConfig.Register(HttpConfiguration config) in c:\Users\michaelj\Desktop\warehouse server\InventoryScanner\InventoryScanner\InventoryScanner.Web\App_Start\WebApiConfig.cs:45
   InventoryScanner.Web.WebApiApplication.Application_Start() in c:\Users\michaelj\Desktop\warehouse server\InventoryScanner\InventoryScanner\InventoryScanner.Web\Global.asax.cs:21

[HttpException (0x80004005): The type 'EntLibContrib.Data.OdpNet.OracleDatabase, EntLibContrib.Data.OdpNet, Version=5.0.505.0, Culture=neutral, PublicKeyToken=null' cannot be resolved. Please verify the spelling is correct or that the full type name is provided.]
   System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +9859725
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +118
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +172
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +336
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296

[HttpException (0x80004005): The type 'EntLibContrib.Data.OdpNet.OracleDatabase, EntLibContrib.Data.OdpNet, Version=5.0.505.0, Culture=neutral, PublicKeyToken=null' cannot be resolved. Please verify the spelling is correct or that the full type name is provided.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9873912
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254

我的研究表明,EntLib的DI方面没有正确解析EntLibContrib.Data.OdpNet.dll,尽管它位于网站bin目录中。

我用谷歌搜索并将ArgumentException行和EntLibContrib.Data.OdpNet.OracleDatabase绑定,但没有看到任何让我比我已经说过的更接近的东西。

我没有写这个应用程序,也没有任何EntLib的经验或理解。上周我问那个写过申请表并且还没有收到他的人,所以我希望有人可以帮助我。

2 个答案:

答案 0 :(得分:0)

这结果是设置的问题。不幸的是,细节从未被发现。我们重新部署了它,它起作用了。

答案 1 :(得分:0)

在使用visual studio运行我的网站时,我有同样的经验, 我在使用visual studio运行我的网站时收到了ArgumentException消息。

就我而言,我在WebBase实现中使用onLoad方法。

因此,我在我的代码中添加了一个try catch语句,其中发生了问题。 实际上,即使发生了一些异常,也要跳过它。

try
{
    base.OnLoad(e);
}
catch (ArgumentException e1)
{
    Console.WriteLine(e1.StackTrace);
}
catch (Exception e1)
{
    Console.WriteLine(e1.StackTrace);
}

然后通过在发生此异常时将项“停止”告诉编译器忽略此异常。就是这样。