2010-07-09 71 views
1

我有一臺Windows Server 2008 x64機器,並已使用ODAC 11g客戶端成功將簡單的ASP.NET/C#應用程序連接到Oracle數據庫。我的下一步是將同一個oracle連接添加到SharePoint Web部件(它是在同一臺機器上開發的)。 SharePoint Server,Web Server等也都位於同一臺機器上。我想我可以將Oracle.DataAccess引用添加到我的SharePoint Web部件,添加oracle連接代碼,並完成...但現在哦...我通過瀏覽器加載我的Web部件時出現以下錯誤oracle連接:無法加載文件或程序集'Oracle.DataAccess'

[BadImageFormatException:無法加載文件或程序集'Oracle.DataAccess,Version = 2.112.1.1,Culture = neutral,PublicKeyToken = 89b483f429c47342'或其依賴項之一。試圖加載一個格式不正確的程序。]

有人可以幫我調試嗎?我在GAC中安裝了正確版本的程序集。由於某種原因,它沒有看到它?我很困惑,爲什麼一個簡單的ASP.NET/C#應用程序可以正常工作,但現在它已經在SharePoint上運行起來不起作用。有任何想法嗎?

SPECFIC ERROR:

[TargetInvocationException:異常已被調用的目標拋出] 在System.RuntimeTypeHandle.CreateInstance(RuntimeType類型,布爾publicOnly,布爾NOCHECK,布爾& canBeCached,RuntimeMethodHandle &構造函數布爾& bNeedSecurityCheck) 在System.RuntimeType.CreateInstanceSlow(布爾publicOnly,布爾fillCache) 在System.RuntimeType.CreateInstanceImpl(布爾publicOnly,布爾skipVisibilityChecks,布爾fillCache) 在System.Activator.CreateInstance(類型類型,布爾非公開) 在Microsoft.SharePoint.WebPartPages.SPWebPartReflectionHelper.GetDefaultControl(類型controlType) 在Microsoft.SharePoint.WebPartPages.BinaryWebPartDeserializer.LoadInitialWebPart() 在Microsoft.SharePoint.WebPartPages.BinaryWebPartDeserializer.Deserialize() 在Microsoft.SharePoint.WebPartPages.SPWebPartManager .CreateWebPartsFromRowSetData(布爾onlyInitializeClosedWebParts)

[BadImageFormatException:未能加載文件或程序集 'Oracle.DataAccess,版本= 2.112.1.1文化=中性公鑰= 89b483f429c47342' 或它的一個依賴。嘗試加載格式不正確的程序。] at PortalOBIEEReportList.OBIEEReportList.OBIEEReportList..ctor()

+0

您是否在同一臺機器上安裝了oracle 10g? – 2010-07-09 02:28:48

+0

不,Oracle 11g安裝在同一臺計算機上...我也運行ODAC 11g客戶端。我很困惑,因爲我的非SharePoint ASP.Net/C#應用程序連接得很好。看起來好像這是一個32位和64位的問題,但一切都是11g/64位。 – Josh 2010-07-09 02:35:16

+0

我甚至嘗試在VS項目中將平臺設置爲x64,但沒有運氣。 – Josh 2010-07-09 02:53:13

回答

1

您可能需要在Web.Config中爲oracle數據訪問dll輸入安全控制設置您的SharePoint應用程序的文件。安全控制設置顯式標識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

0

構建平臺的目標必須是「任何CPU」或x64。

相關問題