入门第一题,是代码原因还是网站原因?
今天刚刚下载了Microsoft Visual Web Developer 2005 express edition,开始学习asp.net,碰到问题请教大家:
<%@ Page Language= "C# " %>
<%@ Import Namespace= "System.IO " %>
<%@ Import Namespace= "System.Text " %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<script runat= "server ">
protected void Button1_Click(object sender, EventArgs e)
{
TextBox1.Text = "hello测试 ";
StreamWriter sw = File.AppendText(AppDomain.CurrentDomain.BaseDirectory + "jilu.txt ");
if (File.Exists( "jilu.txt "))
{
sw.WriteLine(TextBox1.Text);
sw.Close();
}
else
{
StreamWriter sr = File.CreateText( "jilu.txt ");
sw.WriteLine(TextBox1.Text);
sr.Close();
sw.Close();
}
}
</script>
<html xmlns= "http://www.w3.org/1999/xhtml " >
<head runat= "server ">
<title> Untitled Page </title>
</head>
<body>
<form id= "form1 " runat= "server ">
<div>
<asp:TextBox ID= "TextBox1 " runat= "server " Width= "178px "> </asp:TextBox>
<asp:Button ID= "Button1 " runat= "server " Height= "21px " OnClick= "Button1_Click " Text= "Button "
Width= "54px " /> </div>
</form>
</body>
</html>
调试保存成 "test.aspx "文件后,在本地测试没有问题,但上传到我购买的虚拟主机的一个子目录里面后,用浏览器打开,点击“Button”按钮后出现:
“/”应用程序中的服务器错误。
--------------------------------------------
运行时错误
而如果将StreamWriter等写入文件的代码删除则没有问题,请教这是什么原因呢?还请前辈们指教!!谢谢
------解决方案--------------------
虚拟主机的.net 环境的问题!
[解决办法]
很可能是权限问题
[解决办法]
可能是虚拟主机里,你的目录没有设置写权限,IIS帐户无法对其进行写入操作。
联系供应商解决。
[解决办法]
这个问题在文件上传和读写文件中经常碰到。要把你需要进行读写权限得文件夹得权限用户设置为everyone,也就是任何一个用户都可以。默认XP系统不需要设置,2000和2003都需要设置。
[解决办法]
你的逻辑有些乱,并且文件路径前后矛盾:
protected void Button1_Click(object sender, EventArgs e)
{
TextBox1.Text = "hello测试 ";
string file=File.Merge(AppDomain.CurrentDomain.BaseDirectory, "jilu.txt ");
File.AppendAllText(file,TextBox1.Text);
}
对于file,也可以写:
string file=Server.MapPath( "~/jilu.txt ");
当你使用asp.net2.0,应该把文件jilu.txt写在~/App_Data目录下,你上面放在根目录下。
[解决办法]
原来的代码应该是这有问题吧?
File.Exists( "jilu.txt ")
和
File.AppendText(AppDomain.CurrentDomain.BaseDirectory + "jilu.txt ");
的路径是不一样的。