2011-03-22 26 views
0

我開發一個.net 3.5 x64的Web應用程序,其中包括在配置自定義的HttpHandler:HttpHandlers的64問題

<add path="*.class1" verb="GET" type="ClassLibrary1.Class1Handler"/> 

時ClassLibrary1的平臺目標設定在86這個工作。
然而,當我設置爲x64時,我收到以下錯誤,當我運行Web應用程序啓動(它編譯就好了):

配置錯誤

說明:一個處理過程中出現錯誤配置文件需要服務這個請求。請查看下面的具體錯誤細節並適當修改您的配置文件。

解析器錯誤消息:無法加載文件或程序集'ClassLibrary1,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其依賴項之一。試圖加載格式不正確的程序。

這是否意味着只能在x86上編譯HttpHandler?
這對我沒有多大意義。
有沒有人知道會發生什麼?

編輯1:
ClassLibrary1項目只是一個空的類庫項目,其中添加了一個HttpHandler(也是空的)。

編輯2:
我也越來越編譯時,這些警告消息,我敢肯定,他們有一些與此有關的問題:

集生成 - 引用程序集「mscorlib.dll中」目標不同的處理器HttpTest

編輯3:
我手動編輯項目文件強制到64集的引用,例如:

<參考包含= 「$(WINDIR)\ Microsoft.NET \ Framework64 \ V2.0.50727 \ System.dll中」/>

這確實剿上述警告消息,但問題是不解決。

謝謝!

+0

你確定你是在x64網絡服務器上運行此操作? – 2011-03-22 15:03:03

+0

Yessir,它正在運行SharePoint;) – SaphuA 2011-03-22 15:05:47

+0

SharePoint 2007不需要x64 – 2011-03-22 15:09:13

回答

0

你的一個依賴程序被設置爲86,而不是AnyCPU或x64

this page對於如何使用coreflags.exe查詢assebly有問題的標誌編譯

+0

您能否詳細說明您的意思?什麼?以及/爲什麼我應該使用coreflags.exe? – SaphuA 2011-03-22 15:34:16

+0

ClassLibrary1還有什麼依賴,即它引用了什麼其他程序集 - 它可能是其中一個引用的程序集標記爲x86,因此無法加載到x64上下文中 - 您可以使用corflags exe來詢問依賴dll以查看他們被標記爲x86或x64或任何 – Richard 2011-03-22 16:52:37

+0

謝謝。我目前只引用System和System.Web,並嘗試從x64目錄手動添加它們。我確實注意到了一些警告信息,可能與您建議的內容有關。查看我的第一篇文章的編輯。 – SaphuA 2011-03-23 08:34:45

1

您可能使用屬性x86編譯了您的程序集ClassLibrary1。嘗試使用AnyCPU標籤進行編譯。

+0

謝謝。雖然這確實解決了這個問題,但它不是所需的溶劑。我正在開發SharePoint,需要爲x64編譯。 – SaphuA 2011-03-22 15:30:12