asp.NET 2.0 Web站点无法访问App_Code中的类

Tav*_*vis 3 c# asp.net web

在将我的网站部署到服务器后,我遇到了访问课程的问题.请注意,这是一个Web 站点而不是Web 应用程序.错误是:

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

版本信息:Microsoft .NET Framework版本:2.0.50727.1433; ASP.NET版本:2.0.50727.1433

我做了很多谷歌搜索,但没有找到任何有用的东西.

我的代码看起来像这样(我在声明Order的行上得到编译器错误):

//Default.aspx.cs
namespace Foo
{
    public partial class _Default : System.Web.UI.Page
    {
        private Order custOrder;
        ....etc
    }
}
Run Code Online (Sandbox Code Playgroud)

在App_Code文件夹中,我有Order.cs:

namespace Foo
{
    public class Order
    {
        ....etc
    }
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是,这在本地和开发环境中都可以正常工作.当我将它移动到qa环境时,就是当我得到那个错误时.

我通过将所有代码提交到subversion存储库然后在服务器计算机上进行导出来进行部署.

我想这可能是某种命名空间错误,但我不知道它为什么会在某些机器而不是其他机器上工作.

知道在不同的服务器上可能会有什么不同可能会导致这种情况吗?所有计算机都将.net版本报告为2.0

Ada*_*uss 17

右键单击App_Code中的源文件,并将其"Build Action"属性设置为"Compile".

  • 在将文件手动移动到新的Web应用程序项目后,这为我修复了它.app_code中每个文件的构建操作属性都设置为内容而不是编译. (2认同)

3Da*_*ave 3

正如它所说,错误意味着它找不到该类型。

可能的原因:

  1. 编译错误导致 app_code 文件夹中的 .cs 文件无法编译。当 ASP.NET 查看编译后的代码时,它找不到您要查找的类,因此出现错误。

  2. .cs 文件未部署到 app_code。显然,如果源文件不在站点中,则无法编译它们。

  3. 权限问题导致服务器无法加载 .cs 文件。

  4. 您的其中一个页面错误地引用了该类 - 可能是 .cs 或 .aspx 中的拼写错误、类被移动到新的命名空间或重命名等。

本质上,无法找到、访问或编译源代码。