在我的同事继续工作之后,我继承了一个项目。我有一个用于侦听器服务的C#项目,将由基于云的应用程序向我们发送请求和数据调用。所有的测试都能在dev中正常工作,当我在IIS 2008 R2上部署应用程序时会出现问题。编译器错误CS0246侦听器服务IIS 2008 R2
在Visual Studio中的项目中设置的目标框架是.Net Framework 4.5。
包含已编译应用程序的IIS上的虚拟目录位于使用'.Net Framework v4.0.30319'的应用程序池内。从我的研究中我已经看到,这个Framework版本应该可以与为v4.5部署的所有应用程序一起工作。
虚拟目录包含用于侦听器服务的asmx文件,Web.Config文件和包含所有二进制文件的bin目录。
当我调用ASMX文件在IE中,我得到了以下错误:
编译器错误信息:CS0246:类型或命名空间名称“XXX”找不到(是否缺少using指令或程序集参考?)
参考XXX作为使用语句列出,并位于同一项目的文件夹结构中。这并不是指向一个单独的项目。我阅读了以下Microsoft article,其中的所有内容似乎都是正确的。但是,最后的注释表明,当为.Net 4.5编译DLL时,也可能会引发错误CS0246,然后将其复制到带有Plattform 4.0目标的项目中。
有人可以确认上述应用程序池设置是否可以与为.Net v4.5构建的应用程序一起工作,并建议为什么asmx文件无法在Web服务器上编译?
'.Net Framework v4.0.30319'是.NET 4.0,4.5,4.5.1,4.5.2,4.6,4.6.1,4.6.2和4.7的基础,所以是的,这是正确的。如果存在架构不匹配(x86与x64),也会发生此问题 –