Что не так с моим кодом C # внутри файла .aspx? - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь выполнить свой код через файл .aspx.Но это показывает мне эту ошибку:

Ошибка сервера в приложении '/'.

Описание: на сервере произошла ошибка приложения.Текущие пользовательские настройки ошибок для этого приложения не позволяют удаленно просматривать подробности ошибки приложения (из соображений безопасности).Однако его могут просматривать браузеры, работающие на локальном сервере.Подробно: Чтобы детали этого конкретного сообщения об ошибке можно было просматривать на удаленных компьютерах, создайте тег в файле конфигурации «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>"

1 Ответ

0 голосов
/ 24 июня 2019

В вашем конфигурационном файле вы можете отключить опцию пользовательских ошибок, используя следующую информацию в вашем system.web:

<system.web>
    <customErrors mode="Off"/>
    <compilation debug="true"/>
    <authentication mode="None"/>
</system.web>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...