2011-03-22 22 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