网站和 App_Code 无法正常工作 (#C)

Posted

技术标签:

【中文标题】网站和 App_Code 无法正常工作 (#C)【英文标题】:Website & App_Code not working correctly (#C) 【发布时间】:2016-03-15 11:43:51 【问题描述】:

我只是想从 app_code 文件夹调用网站中的方法,但我没有在 Visual Studio 中创建项目,我使用的是 Azure。

所有的 aspx 文件都在 /site/wwwroot 文件夹中,而我的 App_Code 文件夹在一切之外。

我尝试过使用命名空间调用,而其他人刚刚说过更改类属性中的编译设置,但该选项不会出现在类属性下。 (我认为是因为我使用 Azure 创建的项目,我不太确定)

这是我的代码看起来正确的样子。

Scores.aspx.cs

using Tennis;

public partial class site_wwwroot_Scores : System.Web.UI.Page 


    protected void Page_Load(object sender, EventArgs e)
    
        private List<Player> players = null;
        players = PlayerDB.GetPlayers();
        FillListBox();
    

    protected void FillListBox()
    
        //foreach (Player p in players)
        //
        //    lstBxPlayers.Items.Add(p.GetDisplayText());
        //
    


PlayerDB.cs(位于 App_Code 文件夹内)

namespace Tennis 

    public class PlayerDB
    

        public PlayerDB()
        
        

        public static List<Player> GetPlayers()
        
            // create the list
            List<Player> players = new List<Player>();

            // create the XmlReaderSettings object
            XmlReaderSettings settings = new XmlReaderSettings();
            settings.IgnoreWhitespace = true;
            settings.IgnoreComments = true;

            // create the XmlReader object
            string path = HttpContext.Current.Server.MapPath("~/site/wwwroot/players.xml");
            XmlReader xmlIn = XmlReader.Create(path, settings);

            // read past all nodes to the first Player node
            xmlIn.ReadToDescendant("Player");

            // create one Player object for each Player node
            do
            
                Player p = new Player();
                xmlIn.ReadStartElement("Player");
                p.PlayerNumber = xmlIn.ReadElementContentAsString();
                p.PlayerTotalSetScore = xmlIn.ReadElementContentAsString();
                p.PlayerTotalWin = xmlIn.ReadElementContentAsString();
                players.Add(p);
            
            while (xmlIn.ReadToNextSibling("Player"));

            // close the XmlReader object
            xmlIn.Close();

            return players;
        
    

Visual Studio 没有显示任何错误或任何内容,但每当我尝试浏览我的网站时,都会出现运行时错误。

【问题讨论】:

尝试使用远程调试来发现问题。您可以使用远程调试附加到您的 Web 应用程序并对其进行调试 (azure.microsoft.com/en-us/documentation/articles/…)。 每当我在 VS 中查看服务器资源管理器时,我都看不到 Web 配置文件,每当我通过 VS 打开网站时,我只看到一个 Web 配置文件 “出现运行时错误”您需要告诉我们该错误是什么。 它只是说“/”应用程序中的服务器错误,因为我无法启用远程调试 错误消息(称为黄屏死机或 YSOD)解释了如何启用它,以便您可以看到实际的错误消息。遵循这些指示。您必须修改 web.config。 【参考方案1】:

对于 azure (IIS) 中的网络服务器,/site/wwwroot 文件夹是网站根路径。包含所有应用程序代码的文件夹,该文件夹之外的任何其他内容均视为无应用程序代码。

查看 azure web 应用程序的完整文件夹结构(典型)

因为您的 App_Code 文件夹在运行时未编译/处理。

您应该将 App_Code 文件夹移动到 /site/wwwroot/

但是,我的建议 - 强烈建议 - 是您从 Visual Studio 构建您的整个解决方案,这可以帮助您避免此类错误,并且肯定会避免许多其他可能让您陷入困境的错误。

【讨论】:

以上是关于网站和 App_Code 无法正常工作 (#C)的主要内容,如果未能解决你的问题,请参考以下文章

无法从 ASP.Net 网站项目中的代码访问 App_Code 中的类

网站外网可以正常访问,内网无法访问是啥原因?

Sharepoint 2007 alertme (通知我) 无法正常工作

IIS配置后本地访问正常,但外网无法访问

Apachenginx配置的网站127.0.0.1可以正常访问,内外网的ip地址无法访问,谁的锅?

linux服务器上的网站 内网可以访问 外网无法访问