【问题标题】:App_Code and serverApp_Code 和服务器
【发布时间】:2012-01-16 19:33:11
【问题描述】:

我的App_Code 文件夹有一个“小”问题。

我正在学习 ASP.NET,因此订购了一个支持 ASP.NET 4.0 的网络服务器。我正在使用 Visual Web Developer 对我的网页进行编程。当我将我的网站上传到这个网络服务器时,一切都运行良好。

但是,如果我随后将另一个 Web 项目添加到我的服务器,我的 App_Code 文件夹就会变得一团糟。服务器希望我的所有类文件都在根目录的App_Code 文件夹中。有什么方法可以在我的 App_Code 文件夹中创建子目录或其他东西来保持我的项目井井有条,还是我错过了这里的重点?

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    你应该看看codeSubDirectories中的web.config

    【讨论】:

    • 然后我可以指定我的每个网站(应用程序)应该在哪个文件夹中查找?查找对应的类文件等?
    • 您最好对所有类文件使用class library,然后只添加一个项目引用。
    【解决方案2】:

    好的,我找到了解决问题的方法。尽管您的大多数答案也可能有效,但事实证明这对我来说是最好的。我创建了一个子域并将所有文件放入该文件夹,它工作正常。

    【讨论】:

      【解决方案3】:

      您应该尽量避免将 App_Code 文件夹用于您自己的东西,尤其是在您使用 Web 应用程序项目时。

      每当您将网站转换为 Web 应用程序项目时,该过程实际上会将您现有的 App_Code 目录重命名为 Old_App_Code。

      请参阅Here,尽管这是特定于转换 .net 2.0 应用程序的,但我相信它在 4.0 中仍然适用,因为转换 4.0 应用程序做同样的事情。:

      非常非常重要:因为 ASP.NET 2.0 尝试在运行时动态编译它在应用程序的 /App_Code 目录下找到的任何类,您明确地不要想要存储您编译的类作为“app_code”文件夹下的 VS 2005 Web 应用程序项目的一部分。如果您这样做,那么该类将被编译两次——一次作为 VS 2005 Web 应用程序项目程序集的一部分,然后在运行时由 ASP.NET 再次编译。结果很可能是“无法加载类型”运行时异常——因为您的应用程序中有重复的类型名称。相反,您应该将类​​文件存储在项目的任何其他目录中,而不是名为“app_code”的目录中。这将由“转换为 Web 应用程序”命令自动处理。此命令将重命名文件夹 Old_App_Code。

      【讨论】:

        【解决方案4】:

        如果您可以访问托管控制面板,最好为您的第二个网站配置一个虚拟文件夹并从子文件夹运行它,例如www.example.com/project-b。第一个站点仍然可以在根文件夹中运行,例如www.example.com。

        因此,这两个站点基本上是相互隔离的(就像它们现在在 Visual Web Developer Express 中被隔离为两个独立的项目一样)。并且两个站点都有自己的 App_Code 文件夹(和 web.config 文件)。

        如果您无权访问配置面板,大多数托管服务提供商都愿意为您添加一个虚拟文件夹,因为这并不是特殊要求。

        虚拟文件夹应显示为 FTP 文件夹中的常规文件夹,通常位于 www 或 wwwroot 文件夹中。现在您可以将项目文件复制到该文件夹​​中。

        注意在您的第二个项目中使用root-relative paths 作为 URL,这样即使网站是从子文件夹运行的,所有链接也能正常工作。与根目录相关的 URL 如下所示:

        <asp:HyperLink runat="server" NavigateUrl="~/Default.aspx"  />
        <asp:Image runat="server" NavigateUrl="~/images/logo.png"  />
        

        当网站部署在虚拟文件夹中时,这将自动转到www.example.com/project-b/Default.aspxwww.example.com/project-b/images/logo.png

        如果您需要在另一个站点中重用来自一个站点的代码,通常最好将此类代码移动到单独的类库项目类型中,然后将对该项目的引用添加到每个网站项目中(右键单击网站项目,选择添加引用...,然后选择项目选项卡并选择类库项目)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-04-19
          • 1970-01-01
          • 2011-01-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多