Win2003 server IIS上部署ASP.net项目报错
在自己的机子(XP)上开发的项目,并在自己机子的IIS部署通过,但是部署到win2003 server上的IIS后只能进主页,提交数据时报如下错误:Exception Details: System.FormatException: Input string was not in a correct format.
Stack Trace:
[FormatException: Input string was not in a correct format.]
System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +9613471
System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +119
System.Convert.ToInt32(String value) +48
Centerhospital.antidrugs.bt_Resistance_Card_Submit_Click(Object sender, EventArgs e) in F:\VS projects\Centerhospital\Centerhospital\antidrugs.aspx.cs:608
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +118
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +112
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5019
--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:4.0.30128; ASP.NET Version:4.0.30128.1
第608代码如下:
if (Convert.ToInt32(getMaxReport_id()).ToString().Length < 6)
{
string nochar = "";
for (int i = 0; i < 6 - Convert.ToInt32(getMaxReport_id()).ToString().Length; i++)
{
nochar = nochar + "0";
}
string canuse = nochar + Convert.ToInt32(getMaxReport_id()).ToString();
mr.report_id = canuse;
}
getMaxReport_id()方法代码如下:
//获取最大report_id
public string getMaxReport_id()
{
OleDbConnection dconn = GetConn.GetOleDbConnection();
OleDbCommand cmd = new OleDbCommand();
try
{
dconn.Open();
cmd.Connection = dconn;
cmd.CommandText = "select max([report_id]) from Multi_Drug_Res";
OleDbDataAdapter oda = new OleDbDataAdapter();
oda.SelectCommand = cmd;
DataSet ds = new DataSet();
//填充数据
oda.Fill(ds);
dconn.Close();
//输出数据
DataTable dt = ds.Tables[0];
string oj = dt.Rows[0][0].ToString();
if (dt.Rows[0][0].ToString() != null && dt.Rows[0][0].ToString()!="")
return dt.Rows[0][0].ToString();
else
return "000000";
}
catch (Exception e)
{
return "";
}
access数据表初始化状态没有数据,此方法是让report_id字段自动累加,字段类型为文本格式。
坐等高手解答! --------------------编程问答-------------------- access没有写权限,吧iis_wpg,加上修改权限 --------------------编程问答-------------------- 提示的不是很清楚了吗,字符串转换成int出错,和部署在那没关系吧。
这段代码问题n多,比如异常处理,DataAdapter使用等等 --------------------编程问答-------------------- 你那是数据错误与部署没什么关系! --------------------编程问答-------------------- catch (Exception e)
{
return "";
}
中你干嘛 返回空???
report_id 数据库中是神马类型的
cmd.CommandText = "select max([report_id]) from Multi_Drug_Res";
....
..... --------------------编程问答-------------------- 但是我在我自己的机子上调试都没有问题的。自己机子XP系统IIS5,到win2003上IIs6就不行了。 --------------------编程问答-------------------- access report_id为文本类型,返回空时我后面改的,以前测试的时候是返回一个六位的字符串,之前就报这个错了。 --------------------编程问答-------------------- 我对该mdb文件加上了iis_wpg和aspnet权限好像还是这样哦
补充:.NET技术 , ASP.NET