繁体   English   中英

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

[英]What is wrong with my C# code inside .aspx file?

我试图通过.aspx文件执行我的代码。 但它告诉我这个错误:

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

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

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

这是我的代码:

<%@ 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>"

在配置文件中,您可以使用system.web中的以下内容关闭自定义错误选项:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM