zoukankan      html  css  js  c++  java
  • 网站根目录下没有正确的DNT.config文件 (不同类型错误更新中)

    论坛版本:Discuz!NT SQLServer版本  Discuz!NT 2.0 框架版本:2.0 Windows版本:WIN2003

    由于小弟的在解决问题时有些紧张忘记截图,所以只能说了。

     

    下以为前辈总结

    1.首先确认 没有手动修改过dnt.config?

    用最开始好用的覆盖回来
    2.修改过网站根目录下的权限?

    IIS_WPG 修改 IUSR_XXXX 读取 NETWORK SERVICE 修改 Users 读取/运行
    3.系统目录的权限与安装说明里的一样吗?(.net处理这个config文件时需要生成临时文件在系统的一个目录里)
    参看安装文档

    4.如果权限配置正确但是遇到“网站根目录下没有正确的DNT.config文件!!!”的朋友请尝试将DNT.config文件由

    Code

    修改为 

    Code

     

    如果以上解决不了你的问题请往下看

    找到真正的问题所在了。
    分析步骤:
    1.新建一个test.aspx文件:
    <%@ Page Language="C#" %>
    <%@ Import NameSpace="Discuz.Common" %>
    <%@ Import NameSpace="Discuz.Config" %>
    <%@ Import NameSpace="System.IO" %>
    <script runat="server">
    protected void Page_Load()
    {
    GetRealBaseConfig();
    }
    public static BaseConfigInfo GetRealBaseConfig()
    {
        BaseConfigInfo info = null;
        string filename = null;
        HttpContext current = HttpContext.Current;
        if (current != null)
        {
            filename = current.Server.MapPath("/DNT.config");
        }
        else
        {
            filename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "DNT.config");
        }
        try
        {
            info = (BaseConfigInfo) SerializationHelper.Load(typeof(BaseConfigInfo), filename);
        }
        catch(Exception ex1)
        {
    throw ex1;
            info = null;
        }
        if (info == null)
        {
            try
            {
                BaseConfigInfoCollection infos = (BaseConfigInfoCollection) SerializationHelper.Load(typeof(BaseConfigInfoCollection), filename);
                foreach (BaseConfigInfo info2 in infos)
                {
                    if (Utils.GetTrueForumPath() == info2.Forumpath)
                    {
                        info = info2;
                        break;
                    }
                }
                if (info == null)
                {
                    BaseConfigInfo info3 = null;
                    foreach (BaseConfigInfo info4 in infos)
                    {
                        if (Utils.GetTrueForumPath().StartsWith(info4.Forumpath) && (info4.Forumpath != "/"))
                        {
                            info = info4;
                            break;
                        }
                        if ("/".Equals(info4.Forumpath))
                        {
                            info3 = info4;
                        }
                    }
                    if (info == null)
                    {
                        info = info3;
                    }
                }
            }
            catch(Exception ex2)
            {
                throw ex2;
                info = null;
            }
        }
        if (info == null)
        {
            throw new Exception("发生错误: 网站根目录下没有正确的DNT.config文件");
        }
        return info;
    }


    </script>

    GetRealBaseConfig方法是在源代码中提出来的,在catch中,修改了错误输出。
    2.重命名web.config:
    目的是不让discuz去自动运行GetRealBaseConfig这个方法。
    3.访问新建的test.aspx文件。
    此时会看到真正的错误提示(在我机器上是如下显示的):

    (1). 无法生成临时类(result=1)。
          error CS2001: 未能找到源文件“C:\WINDOWS\TEMP\sua-vsnm.0.cs”
          error CS2008: 未指定输入 
          找到问题所在了,是因为C:\WINDOWS\TEMP没有写权限。5.在目录C:\WINDOWS\TEMP为iis启动应用程序池的用户赋予写权限,把web.config名字改回来,问题解决。

    以下为小弟自行解决的问题

    (2).分析 EntityName 时出错。 行 3,位置 85

          小弟先使用一个好用的论坛的DNT.config文件覆盖,修改数据库连接字符串,保存后好用,五分钟后或应用程序池回收后错误再次出现,再次使用一个好用的论坛的DNT.config文件覆盖,不修改数据库连接字符串(用当前论坛,连接同类型论坛的数据库),错误解决(目的没有达到),问题出现在数据库连接字符串上,将有错误的DNT.config文件覆盖回来,使用SQL用户名与密码连接数据库正常好用,在服务器上用VS2005打开DNT.config,发现密码处有红色的小波浪线,在波浪线上面的是字符&于是去掉,然后再修改数据库用户名所对应该的密码,再次浏览,问题解决(突然想起以前曾经也有过这种情况也是密码或用户名中存在&去掉后就好用了).

    如果你出现的问题跟我一样,可以试试.

     

    有新的问题出现,小弟会继续更新,如果哪里说的不对,请前辈们指点. 

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 传球游戏
    Java实现 蓝桥杯VIP 算法训练 Hanoi问题
    Java实现 蓝桥杯VIP 算法训练 蜜蜂飞舞
    Java实现 蓝桥杯VIP 算法训练 奇偶判断
    Java实现 蓝桥杯VIP 算法训练 传球游戏
    Java实现 蓝桥杯VIP 算法训练 Hanoi问题
    Java实现 蓝桥杯VIP 算法训练 Hanoi问题
    Java实现 蓝桥杯VIP 算法训练 蜜蜂飞舞
    Java实现 蓝桥杯VIP 算法训练 蜜蜂飞舞
    Qt: 访问容器(三种方法,加上for循环就四种了)good
  • 原文地址:https://www.cnblogs.com/sa9527/p/1333355.html
Copyright © 2011-2022 走看看