我有一台Windows Server 2008 x64计算机,并使用ODAC 11g客户端成功将简单的ASP.NET / C#应用程序连接到Oracle数据库。我的下一步是将相同的oracle连接添加到SharePoint Web部件(在同一台计算机上开发)。 SharePoint Server,Web Server等也都位于同一台计算机上。我想我可以将Oracle.DataAccess引用添加到我的SharePoint Web部件,添加oracle连接代码,并完成...但是现在哦...我通过浏览器加载我的Web部件时出现以下错误oracle连接:
[BadImageFormatException:无法加载文件或程序集'Oracle.DataAccess,Version = 2.112.1.1,Culture = neutral,PublicKeyToken = 89b483f429c47342'或其依赖项之一。试图加载格式不正确的程序。]
有人可以帮我调试吗?我在GAC中使用正确的版本进行组装。出于某种原因它没有看到它?我很困惑为什么一个简单的ASP.NET / C#应用程序可以正常工作,但现在它在SharePoint上它不起作用。有什么想法吗?
SPECFIC ERROR:
[TargetInvocationException:调用目标抛出了异常。] 在System.RuntimeTypeHandle.CreateInstance(RuntimeType类型,Boolean publicOnly,Boolean noCheck,Boolean& canBeCached,RuntimeMethodHandle& ctor,Boolean& bNeedSecurityCheck) 在System.RuntimeType.CreateInstanceSlow(Boolean publicOnly,Boolean fillCache) 在System.RuntimeType.CreateInstanceImpl(Boolean publicOnly,Boolean skipVisibilityChecks,Boolean fillCache) 在System.Activator.CreateInstance(Type type,Boolean nonPublic) 在Microsoft.SharePoint.WebPartPages.SPWebPartReflectionHelper.GetDefaultControl(类型controlType) 在Microsoft.SharePoint.WebPartPages.BinaryWebPartDeserializer.LoadInitialWebPart() 在Microsoft.SharePoint.WebPartPages.BinaryWebPartDeserializer.Deserialize() 在Microsoft.SharePoint.WebPartPages.SPWebPartManager.CreateWebPartsFromRowSetData(Boolean onlyInitializeClosedWebParts)
[BadImageFormatException:无法加载文件或程序集'Oracle.DataAccess,Version = 2.112.1.1,Culture = neutral,PublicKeyToken = 89b483f429c47342'或其依赖项之一。试图加载格式不正确的程序。] 在PortalOBIEEReportList.OBIEEReportList.OBIEEReportList..ctor()
答案 0 :(得分:1)
您可能需要在SharePoint应用程序的Web.Config文件中输入oracle Data Access dll的安全控制设置。 “安全控制”设置显式标识SharePoint运行时允许加载的DLL。
格式为
<SafeControl Assembly="DLLName, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
Namespace="DLLNameSpace"
TypeName="*"
Safe="True"
AllowRemoteDesigner="True" />
Information添加SafeControl。
我用来帮助确定程序集名称的工具是.NET Reflector
答案 1 :(得分:0)
构建平台目标必须是“任何CPU”或x64。