2012-09-24 75 views
7

我知道這個問題被問了很多次,我發現很多關於這個問題的谷歌的信息,但我仍然無法解決我的DEV上存在的問題PC :(
I have that ugly error message on every page(無法加載文件或程序Microsoft.SqlServer.BatchParser)。我安裝Microsoft SQL Server 2005 Management Objects Collection誠如許多互聯網資源,但它沒有幫助,然後我試圖安裝Microsoft SQL Server 2008 Management Objects,但它說,它無法安裝,因爲已經有更新的版本(我已經安裝了SQL Server 2008)
然後我去了GAC,發現如下幾行:
Microsoft.SqlServer.BatchParser,Version = 10.0.0.0,Culture = neutral,PublicKeyTok EN = 89845dcd8080cc91,ProcessorArchitecture用於= AMD64無法加載Microsoft.SqlServer.BatchParser或它的一個依賴關係

Microsoft.SqlServer.BatchParser,版本= 9.0.242.0,文化=中性公鑰= 89845dcd8080cc91,ProcessorArchitecture用於= AMD64

Microsoft.SqlServer.BatchParser,版本= 10.0.0.0,文化=中性公鑰= 89845dcd8080cc91,ProcessorArchitecture用於= 86

Microsoft.SqlServer.BatchParser,版本= 9.0.242.0,文化=中性公鑰= 89845dcd8080cc91,ProcessorArchitecture用於= 86

Microsoft.SqlServer.BatchParserClient,Versio n = 10.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91,processorArchitecture = MSIL < - 版本9.0.242.0是否存在?

我已經花了大約半天的時間找到一個沒有成功的解決方案,而且當因爲錯誤導致intellisense無法正常工作時,使用VS非常糟糕。

我有VS 2010的SQL Express 2005和SQL Server 2008的安裝(請參閱配置截屏)enter image description here

請幫我解決這個問題!謝謝。

回答

2

您必須通過visual studio執行應用程序時出現此錯誤。我在過去得到了這個錯誤,但是在一些解決方法如

之後得到解決1)刪除不需要的BatchParser引用(如果它存在於web.config中)。
2)一些第三方的DLL使用可能導致應用程序通過此錯誤。
3)您可能從其他頁面複製了您的aspx頁面,並忘記更改「inherts」部分。

+0

1)我沒有在解決方案中找到任何對BatchParser的引用。 2)我認爲不,但可以確認嗎? 3)這是一個包含數據庫項目的舊解決方案,並且在某些時候錯誤開始出現。 –

+0

你可以把調試器,並告訴我們在哪一行你有錯誤? –

+0

當我附加到過程時,現場沒有發生錯誤。只有在設計時,在編輯ASPX標記時,在@Page指令行中它會顯示下劃線(如錯誤)。當我將鼠標懸停在上面時,它顯示BatchParser錯誤。沒有編譯錯誤或運行時錯誤存在。 –

3

您是否在Management Studio或Visual Studio中看到此錯誤?你什麼時候收到這個錯誤信息?此問題可能是由於32位與64位交互造成的,原因如下:

956178當您在基於Itanium的Windows版本上運行32位版本的SQL Server 2008時出現錯誤消息:「系統無法找到指定的文件「 http://support.microsoft.com/kb/956178/EN-US

如果您使用的是64位系統,請確保安裝了64位版本的更新後的管理對象。

+0

當我打開ASPX頁面進行編輯時,出現在Visual Studio中的錯誤。在文件頂部,我看到錯誤消息,然後intelisence不起作用。我使用的是Windows 7 64位,SQL2008 32位,VS2010 32位,四核Q8400 CPU。我試圖安裝sql2008的管理對象,但它告訴我已經安裝的新版本。 –

+0

請參閱https://social.technet.microsoft.com/wiki/contents/articles/35832.sql-server-troubleshooting-could-not-load-file-or-assembly-microsoft-sqlserver-batchparser.aspx 下載他們推薦的兩個軟件包(x64)首先安裝clr類型,然後是SharedManagementObjects。 – Savage

0

我必須進入我的應用程序池的高級設置並將「啓用32位應用程序」設置爲TRUE(我正在運行64位SQL Server)。

+0

我有相反的問題。我在應用程序的構建屬性中選中了「首選32位」,但我已安裝了64位SMO。 – mhenry1384

3

*注意:此答案適用於從C#程序使用MS SQL SMO(管理對象)的人員。 我正在努力解決問題中提到的錯誤。我得到確切的錯誤是這樣的:

無法加載文件或程序集「Microsoft.SqlServer.BatchParser.dll」 或它的一個依賴。動態鏈接庫(DLL) 初始化例程失敗。 (異常來自HRESULT:0x8007045A)

它最終成爲在.NET 4.0(或更高版本)CLR中運行.NET 2.0程序集的問題。 SQL服務器SMO組件針對運行時的V2.0.50727,因此下面的部分在所述的app.config(或web.config中)需要內置

<startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 

PS:該提示是this discussion thread上MSDN論壇。

相關問題