C# 编译器错误CS0246侦听器服务IIS 2008 R2

C# 编译器错误CS0246侦听器服务IIS 2008 R2,c#,web-services,iis,C#,Web Services,Iis,我的同事离职后,我继承了一个项目。我有一个C#项目,用于侦听器服务,该服务将由向我们发送请求和数据的基于云的应用程序调用。所有测试在dev中都可以正常工作,当我在iis2008r2上部署应用程序时,问题就出现了 Visual Studio项目中设置的目标框架是.Net Framework 4.5 IIS上包含已编译应用程序的虚拟目录位于设置为使用“.Net Framework v4.0.30319”的应用程序池中。从我的研究中,我发现这个框架版本应该适用于为v4.5部署的所有应用程序 虚拟目录包

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

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

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

虚拟目录包含侦听器服务的asmx文件、Web.Config文件和包含所有二进制文件的bin目录

在IE中调用asmx文件时,出现以下错误:

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

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

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

问题似乎出在包含XXX的程序集中 类型。此程序集的旧版本或其他版本可能不包含此类型或命名空间

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

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


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

      .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),也可能发生此问题