2017-07-07 42 views
0

在我的同事继续工作之后,我继承了一个项目。我有一个用于侦听器服务的C#项目,将由基于云的应用程序向我们发送请求和数据调用。所有的测试都能在dev中正常工作,当我在IIS 2008 R2上部署应用程序时会出现问题。编译器错误CS0246侦听器服务IIS 2008 R2

在Visual Studio中的项目中设置的目标框架是.Net Framework 4.5。

包含已编译应用程序的IIS上的虚拟目录位于使用'.Net Framework v4.0.30319'的应用程序池内。从我的研究中我已经看到,这个Framework版本应该可以与为v4.5部署的所有应用程序一起工作。

虚拟目录包含用于侦听器服务的asm​​x文件,Web.Config文件和包含所有二进制文件的bin目录。

当我调用ASMX文件在IE中,我得到了以下错误:

编译器错误信息:CS0246:类型或命名空间名称“XXX”找不到(是否缺少using指令或程序集参考?)

参考XXX作为使用语句列出,并位于同一项目的文件夹结构中。这并不是指向一个单独的项目。我阅读了以下Microsoft article,其中的所有内容似乎都是正确的。但是,最后的注释表明,当为.Net 4.5编译DLL时,也可能会引发错误CS0246,然后将其复制到带有Plattform 4.0目标的项目中。

有人可以确认上述应用程序池设置是否可以与为.Net v4.5构建的应用程序一起工作,并建议为什么asmx文件无法在Web服务器上编译?

+0

'.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),也会发生此问题 –

回答

0

The problem seems to be in the assembly which contains the XXX type.You may have an older version or a different version of this assembly which does not contain this type or namespace.

  • 找出你喜欢的类型
  • 转到bin目录下的DLL和找出该DLL的版本存在
  • 交叉检查此版本与开发环境。
  • 如果不工作,你可以手动本次大会从开发环境复制并放置在IIS服务器
0

首先感谢你对那些谁了回复的时间。

问题原来是因为我需要将IIS上的虚拟目录转换为应用程序。该选项位于虚拟目录树视图的右侧菜单中。如果您选择“查看虚拟目录”,这是非常有用的。