当前位置:编程学习 > C#/ASP.NET >>

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就不行了。
引用 2 楼 cmic 的回复:
提示的不是很清楚了吗,字符串转换成int出错,和部署在那没关系吧。


这段代码问题n多,比如异常处理,DataAdapter使用等等
--------------------编程问答-------------------- access report_id为文本类型,返回空时我后面改的,以前测试的时候是返回一个六位的字符串,之前就报这个错了。
引用 4 楼 wosizy 的回复:
catch (Exception e)
            {
                return "";
            }
中你干嘛 返回空??? 

report_id  数据库中是神马类型的 
cmd.CommandText = "select max([report_id]) from Multi_Drug_Res";
....
.....
--------------------编程问答-------------------- 我对该mdb文件加上了iis_wpg和aspnet权限好像还是这样哦
引用 1 楼 jiuhexuan 的回复:
access没有写权限,吧iis_wpg,加上修改权限
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,