HttpHandlers x64问题

时间:2011-03-22 14:59:39

标签: asp.net sharepoint web-config 64-bit httphandler

我开发了一个.Net 3.5 x64 Web应用程序,其中包含配置中的自定义HttpHandler:

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

当ClassLibrary1的平台目标设置为x86时,此方法有效 但是,当我将其设置为x64时,我在运行Web应用程序启动时收到以下错误(它编译得很好):

  

配置错误

     

描述:处理为此请求提供服务所需的配置文件时发生错误。请查看下面的具体错误详细信息并相应地修改配置文件。

     

分析程序错误消息:无法加载文件或程序集“ClassLibrary1,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null”或其依赖项之一。试图加载格式不正确的程序。

这是否意味着只能在x86编译HttpHandler? 这对我来说没什么意义 有没有人知道会发生什么?

编辑1:
ClassLibrary1项目只是一个空类库项目,添加了一个HttpHandler(也是空的)。

编辑2:
我在编译时也收到了这些警告信息,我很确定它们与这个问题有关:

  

程序集生成 - 引用程序集'mscorlib.dll'针对不同的处理器HttpTest

编辑3:
我手动编辑了项目文件以强制引用x64程序集,如下所示:

  

&lt; Reference Include =“$(Windir)\ Microsoft.NET \ Framework64 \ v2.0.50727 \ System.dll”/&gt;

这会阻止上述警告消息,但问题仍未解决。

谢谢!

2 个答案:

答案 0 :(得分:1)

您可能使用属性x86编译了程序集ClassLibrary1。尝试使用AnyCPU标记进行编译。

答案 1 :(得分:0)

编译其中一个依赖程序集时,标志设置为x86而不是AnyCPU或x64

请参阅this page了解如何使用coreflags.exe查询有问题的组件