【问题标题】:App_Code and web.configApp_Code 和 web.config
【发布时间】:2009-03-23 01:39:43
【问题描述】:

假设我在 App_Code 中有一个类 (MyClass.cs)(使用 ASP.NET 网站,而不是项目)。没有为该类分配命名空间。

如何使该类在网站 .aspx 页面中有效?我需要在 web.config 文件中添加什么?我需要在哪里添加?

我是

由于程序集标签需要版本、文化和公钥,我不确定这些值在编译时是什么。

我只是添加一个类型标签吗?我应该把它放在 web.config 的什么位置?

编辑: 好的,我找到了部分答案。我收到错误是因为“http://localhost/MyFolder”未在 IIS 中设置为“应用程序”。但是,我有一堆文件夹,“http://localhost/MyFolder2http://localhost/MyFolder3 等......

新问题:有什么方法可以不让 MyFolder 成为应用程序,并且仍然可以正常运行?我听说过“codesubdirectories”标签,它有用吗?我应该把它放在哪里?谢谢。

【问题讨论】:

  • 哥们,别这么被动攻击了。

标签: asp.net web web-config app-code


【解决方案1】:

在网站中,您的 App_code 文件夹中不需要名称空间。无需进入 web.config 即可引用 app_code 文件夹中的类。

【讨论】:

    【解决方案2】:

    这是首次引入 asp.net 2.0 网站时出现的动态编译的那些记录不充分的方面之一。

    但是,对于您的具体问题的实际答案需要您告诉我们更多关于您正在尝试对 App_Code 中的类做什么。大多数时候,您不必担心命名空间或程序集名称即可在页面中使用这些类。您只需使用类名,编译器就会弄清楚并为您连接所有内容。

    我遇到的最大例外是在使用我放入 app_code 的 Web 控件时。对于那些你需要在 aspx 页面中使用 @Register 指令的人......并且为此你需要一个程序集名称和一个命名空间。

    app_code 中的文件被编译成一个名为“__code”的程序集(请注意,它有两个下划线,而不是一个)。当您需要 Register 指令或 web.config 中的程序集名称时,您可以使用这些名称。

    但是,据我所知,您将无法在 register 指令或某些需要命名空间的 web.config 设置中使用类,除非您已将该类显式包装在命名空间块中。

    【讨论】:

      【解决方案3】:

      在解决方案资源管理器中检查代码文件的属性。

      我遇到了一种情况,其中一个 .cs 代码文件为构建操作选择了“内容”。 App_Code 中的所有其他文件都可以正常编译,但不是这个。

      将构建操作更改为“编译”,它开始按预期工作。

      【讨论】:

        【解决方案4】:

        按照您的编辑,您是否尝试过将 App_Code 文件夹移动到站点的根目录?

        /App_Code
        /MyFolder
        /MyFolder2
        /MyFolder3
        

        这可能会解决您的问题。

        您还可以查看 Scott Guthrie 的提示/技巧:

        Creating Sub Web Projects using the VS 2005 Web Applications

        虽然这确实使用了 Web 应用程序项目,而不是网站。

        查看 CodeSubDirectories 配置元素 - 您可能可以使用它 - 我猜它需要在根 web.config 中定义。

        另外,请注意, 引用仅需要包含版本、文化和公钥详细信息,如果程序集是强命名的(并且具有这些值)。

        【讨论】:

          【解决方案5】:

          我认为你根本不需要做任何事情。这就是网站“项目”的工作方式。 App_Code 中的任何内容都会被编译。

          【讨论】:

            【解决方案6】:

            检查以确保课程是公开的,也许?

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-09-09
              • 2016-02-11
              • 1970-01-01
              • 2017-04-07
              相关资源
              最近更新 更多