编译器错误CS0246监听器服务IIS 2008 R2

时间:2017-07-07 14:55:13

标签: c# web-services iis

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

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

IIS上包含已编译应用程序的虚拟目录位于设置为使用“.Net Framework v4.0.30319”的应用程序池中。根据我的研究,我发现这个Framework版本应该适用于为v4.5部署的所有应用程序。

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

当我在IE中调用asmx文件时,我收到以下错误:

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

引用XXX列为using语句,位于同一项目的文件夹结构中。它没有指向一个单独的项目。我阅读了以下Microsoft article,其中的所有内容似乎都是正确的。然而,最后的评论表明,当为.Net 4.5编译DLL时,也可以引发错误CS0246,然后将其复制到具有目标Plattform 4.0的项目。

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

2 个答案:

答案 0 :(得分:0)

  

问题似乎在包含XXX的程序集中   您可能拥有此程序集的旧版本或不同版本,但不包含此类型或命名空间。

  • 找出你的类型的dll
  • 转到bin目录,找出此dll的版本
  • 使用开发环境交叉检查此版本。
  • 如果这不起作用,您可以从开发环境手动复制此程序集并放入IIS服务器

答案 1 :(得分:0)

首先感谢那些花时间回复的人。

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