.aspx文件中的C#代码有什么问题?

时间:2019-06-24 14:51:51

标签: c# asp.net asp.net-mvc

我正在尝试通过.aspx文件执行代码。但是它显示了这个错误:

  

“ /”应用程序中的服务器错误。

     

描述:服务器上发生应用程序错误。目前   此应用程序的自定义错误设置阻止了   远程查看应用程序错误(出于安全原因)。   但是,可以由本地服务器上运行的浏览器查看它   机。        详细信息:要使此特定错误消息的详细信息可以在远程计算机上查看,请创建标签   在根目录中的“ web.config”配置文件中   当前Web应用程序。然后,此标签应   将其“模式”属性设置为“关闭”。

我现在无法检查服务器错误或更改其设置。

这是我的代码:

<%@ Page Language="C#"%>

<%@ import Namespace="System"%>
<%@ import Namespace="System.IO"%>
<%@ import Namespace="System.Linq"%>


<script runat="server">
public void ReadPublishTxt()
    {
        using (StreamReader sr = File.OpenText(
            "...\\properties.txt"))
        {
            string line;

            while ((line = sr.ReadLine()) != null)
            {
                // Divide all '_'
                string[] lineParts = line.Split('_');

                // Main parameters
                string url = "";
                string title = "";
                string initCode = "";
                string og_desc = "";
                string desc = "";
                string og_img = "";

                // If length == 4, and last index type = string, it means category
                // If length == 4, and last index type = int, it means series
                // If length == 5, it means section

                // Category
                if((lineParts.Length == 4) && (lineParts[3].All(char.IsDigit) == false))
                {
                    url = "...properties/" + lineParts[0] + ".html";
                    title = lineParts[1] + " | ";
                    initCode = "let startPageLink = \"PublishPageContent\"; var categoryNameStart = '" + lineParts[3] + "'; var seriesIds = '';  var infoId = '';";
                    og_desc = " | " + lineParts[2];
                    desc = " " + lineParts[2];
                }
                // Series
                else if ((lineParts.Length == 4) && (lineParts[3].All(char.IsDigit) == true))
                {
                    url = "...properties/" + lineParts[0] + ".html";
                    title = lineParts[1] + "";
                    initCode = "let startPageLink = \"PublishPageContent\"; var categoryNameStart = ''; var seriesIds = '" + lineParts[3] + "';  var infoId = '';";
                    og_desc = " | " + lineParts[2];
                    desc = " " + lineParts[2];
                    og_img = "...properties/images/meta_images/" + lineParts[3] + ".png";
                }
                // Section
                else if (lineParts.Length == 5)
                {
                    url = "...properties/" + lineParts[0] + ".html";
                    title = lineParts[1] + "";
                    initCode = "let startPageLink = \"PublishPageContent\"; var categoryNameStart = ''; var seriesIds = '" + lineParts[4] + "';  var infoId = '" + lineParts[3] + "';";
                    og_desc = "| " + lineParts[2];
                    desc = "| " + lineParts[2];
                    og_img = "...properties/images/meta_images/" + lineParts[3] + ".png";
                }

                // Edit html file with correct data
                string Html = CorrectHtml(url, title, initCode, og_desc, desc, og_img);

                // Create html file
                File.WriteAllText("...properties\\" + lineParts[0] + ".html", Html);
            }
        }
    }

private  string CorrectHtml(string url, string title, string initCode, string og_desc, string desc, string og_img)
    {
        string Html = "<html lang=\"en\">" +
        "<head>" +
            "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>" +
            "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0\" />" +
            "<meta property=\"og:title\" content=\"\"/>" +
            "<meta property=\"og:description\" content=\"/*OG_DESCRIPTION*/\"/>" +
            "<meta property=\"og:image\" content=\"'/*OG_IMAGE*/'\"/>" +
            "<meta property=\"og:type\" content=\"website\"/>" +
            "<meta property=\"og:site_name\" content=\"\"/>" +
            "<meta property=\"og:url\" content=\"OG_URL\"/>" +
            "<meta name=\"description\" content=\"/*DESCRIPTION_DESC*/\"/>" +
            "<meta name=\"twitter:site\" content=\"\"/>" +
            "<title>PAGE_TITLE</title>" +
            "<script>/*PAGE_INIT*/</script>" +
            "<link rel=\"stylesheet\" href=\"/.../style.css\" media=\"all\" id=\"styleLink\" />" +
            "<script src=\"...properties/scripts.js\"></script>" +
            "<link rel=\"icon\" href=\"...properties/images/\">" +
        "</head>" +
        "<body>" +
            "<div id=\"main\" class=\\">" +
            "</div><!-- /#main -->" +
        "</body>" +
       "</html>";

        Html = Html.Replace("OG_URL", url).Replace("PAGE_TITLE", title).Replace("/*PAGE_INIT*/", initCode).Replace("/*OG_DESCRIPTION*/", og_desc)
            .Replace("/*DESCRIPTION_DESC*/", desc).Replace("/*OG_IMAGE*/", og_img);

        return Html;
    }
</script>

问题出在这部分上:

"<script>PAGE_INIT</script>" +
"<script src=\"...properties/scripts.js\"></script>"

编译器将其识别为新的runat脚本。 解决方案是将包含脚本标签的字符串分开:

"<script>PAGE_INIT<" + "/script>" +
"<script src=\"...properties/scripts.js\"><" + "/script>"

1 个答案:

答案 0 :(得分:0)

在配置文件中,您可以通过在system.web中使用以下命令来关闭“自定义错误”选项:

<system.web>
    <customErrors mode="Off"/>
    <compilation debug="true"/>
    <authentication mode="None"/>
</system.web>