0

我一直在努力将 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 目录中。

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

我没有写这个应用程序,我对 EntLib 也没有任何经验或了解。我问了上周写申请的人,但仍然没有收到他的消息,所以我希望这里有人能帮助我。

4

2 回答 2

0

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

于 2014-01-16T21:39:01.173 回答
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);
}

然后通过取消选中“发生此异常时停止”项来告诉编译器忽略此异常。就这样。

于 2017-05-24T01:34:50.587 回答