我的Web表单在开发环境中工作,但在部署到azure

时间:2018-01-15 16:39:00

标签: c# asp.net xml azure visual-studio-2015

在运行Windows 10 Pro的Surface Pro 3上使用:Visual Studio 2015,C# 技能等级:新手

我创建了一个个人网站并将其部署到Azure托管。在我的一个Web表单中,我从DropDownList控件(书籍,文章,专着等)中选择一种引用。然后,我将几个引文数据输入到TextBox控件中。然后我按下按钮。所有TextBox数据都写入XML文件。此外,.aspx.cs代码后面还有一系列if-then语句。根据DropDownList SelectedItem,只有一个if-then语句为真。因此,例如,如果SelectedItem是“Monograph”,那么TextBoxes中的文本将被附加到字符串中,并根据引用脚注中的专着的格式进行格式化。

.cs exerpts ...

string referenceType = ddlType.SelectedItem.Text;
...
if (referenceType == "Monograph")
{
    longCite = "<span style='font-variant:small-caps'>" + author + "</span>";
    longCite = longCite + "<span style='font-variant:small-caps'>" + fullTitle + "</span>";
    pin1 = longCite;
    pin2 = " (";
    if (txtPublisher.Text.Trim() != "") { pin2 = pin2 + txtPublisher.Text.Trim(); }
    pin2 = pin2 + ", " + fullDate + ")" + country + URL;
    longCite = pin1 + pin2;
}

上面代码中构建的字符串被写入XML文件的子节点(摘录如下)......

            XDocument xRef = new XDocument(
        new XDeclaration("1.0", "utf-8", "yes"),
            new XElement("ref",
                new XElement("id", txtID.Text),
                new XElement("type",
                    new XAttribute("id", ddlType.SelectedValue.ToString()),
                    ddlType.SelectedItem.Text),
                new XElement("author",
                    new XAttribute("alpha", txtAuthorAlpha.Text),
                    txtAuthor.Text),
                new XElement("title", txtTitle.Text),
                new XElement("titlePrefix", txtTitlePrefix.Text),
                new XElement("subtitle", txtSubtitle.Text),
                new XElement("subDivider", txtSubDivider.Text),
                new XElement("language",
                    new XAttribute("id", ddlLanguage.SelectedValue.ToString()),
                    new XAttribute("display", ddlLanguage.SelectedItem.Text),
                    fullLang),
                new XElement("country", 
                    new XAttribute("id", ddlCountry.SelectedValue.ToString()),
                    new XAttribute("name", ddlCountry.SelectedItem.ToString())
                    ),
                new XElement("countries", txtCountries.Text.Trim()),
                new XElement("publisher", txtPublisher.Text),
                new XElement("date",
                    new XAttribute("day", ddlDay.SelectedValue.ToString()),
                    new XAttribute("month", ddlMonth.SelectedValue.ToString()),
                    new XAttribute("year", txtYear.Text),
                    fullDate),
                new XElement("longURL", txtLongURL.Text),
                new XElement("shortURL", txtShortURL.Text),
                new XElement("pin1", pin1),
                new XElement("pin2", pin2),
                new XElement("shortCite", shortCite),
                new XElement("longCite", longCite),
                new XElement("notes", txtNotes.Text)
            )
        );
        xRef.Save(Server.MapPath("~/App_Data/references/" + txtID.Text + ".xml"));

当我在开发环境中构建和测试它时,这非常有效。当我在Azure上尝试它时,它不起作用。正确创建XML文件,填充所有节点,但if-then语句中构建的pin1,pin2和longCite节点除外。

我已经重新发布了整个网站。我已经重新发布了特定的webform和代码。我已删除XML文件并在本地服务器上的Web表单中重新创建它们,然后再在Azure服务器上重新创建它们。两个相同的网站。两个不同的结果。在本地计算机上运行时,我在if-then语句中设置断点,然后命中断点。我在Azure服务器上运行时查看了Web表单,以确保DropDownList上的正确项目被选中并拼写正确

<select name="ctl00$MainContent$ddlType" id="MainContent_ddlType">
...
<option selected="selected" value="monograph">Monograph</option>

有什么想法吗?是否存在我应该解决的已知Azure和/或Visual Studio错误?

1 个答案:

答案 0 :(得分:0)

我离开了这几天。然后,尽管反复做同样的事情,我希望得到不同的结果,我重新发表(大约第四或第五次)。这一切,一切正常。我不知道为什么。也许Azure服务器有时间进行某些类型的更新?也许我最初的发布尝试是在迁移期间转到新服务器?无论如何,它现在有效。