今天把discuz 2.0下载下来试一下吧,安装在WINDOWS 2003时,始终提示“网站根目录下没有正确的DNT.config文件”这个错误。同样的程序放在XP下一切正常。反编译得到源代码一看。代码并没有什么问题。但为什么在2003就是不行了呢。
没得办法的情况,我不得不用序列化,而直接读DNT.CONFIG文件.作者代码如下
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
{
info = null;
}
代码增加了一个函数,直接加到这个类里面:
public static BaseConfigInfo Read( string filename)
... {
BaseConfigInfo info = null;
try
...{
info = new BaseConfigInfo();
XmlDocument xdoc = new XmlDocument();
xdoc.Load(filename);
XmlElement root = xdoc.DocumentElement;
XmlNodeList nodes = root.ChildNodes;
info.Dbconnectstring = nodes[0].InnerText;
info.Tableprefix = nodes[1].InnerText;
info.Forumpath = nodes[2].InnerText;
info.Dbtype = nodes[3].InnerText;
info.Founderuid = Int32.Parse(nodes[4].InnerText);
}
catch
...{
info = null;
}
return info;
}
从新编译,一切OK. 不过这里更改只对DNT.CONFIG里面配置单个论坛系统有用. 如果你也遇到这个问题,你可以试试我的方法.这里下载程序集文件,直接替换原文件,请作好备份.(请把这个文件下载后,把扩展名改为.RAR后解压)
但在WINDOWS 2003 还是有问题,好像与这个系统根本就不兼容. 打开IIS一看,后来是程序池设置不对,把它改为默认应用程序池. 这下子问题才真正解决了.如果上面解决不了,请看看是不是这里设置错误了.