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

时间:2015-12-10 00:36:39

标签: c# asp.net azure visual-studio-2012 app-code

我只是试图从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没有显示错误或任何内容,但每当我尝试浏览我的网站时,都会发生运行时错误。

1 个答案:

答案 0 :(得分:0)

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

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

enter image description here

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

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

但是,我的建议 - 强烈的建议 - 是你从Visual Studio构建整个解决方案,这可以帮助你避免这种错误,并确保许多其他错误可以让你陷入困境。