部署ASP.NET程序问题总汇

本机开发环境:VS2005(2.0框架)+Oracle8i客户端+IIS5.1 +WINDOWS XP

服务器:Oracle92 +WINDOWS2003+IIS6.0

公司要在原有程序基础上加个批量修改功能,相当于是二次开发,以前很少连接ORACLE数据库,一开始就遇到连数据的问题, 开始用using system.Data.Oledb,死活连不上,后来改为using system.Data.OracleClient这样连接就和SQL一样的写法了,当然是轻车熟路

 string oracleConn="Data Source=iagent;User ID=iagent;Password=ia;Unicode=True";
 oleCon = new OracleConnection(oracleConn);

 

当然最好是写在Web.Config里,安全些

第二个问题 SQL语句,SQL里的两种写法

string upSql="update orderhist set mailtype=@mailtype where orderid=@orderid";

string upSql="update orderhist set mailtype=' "+mailtype+" ' where orderid=' "+orderid+" ' ";

Oracle中写SQL语句有以下几种方式:

string upSql="update orderhist set mailtype=:mailtype where orderid=:orderid";

OracleCommand oraCmd=new OracleCommand();

oraCmd.parameters.Add("mailtype",OracleType.Varchar).value=mailtype;.........搞定

或者是这样写

string upSql="update orderhist set mailtype="+"? where orderid="+"?";

OracleCommand oraCmd=new OracleCommand();

oraCmd.parameters.Add("@mailtype",OracleType.Varchar).value=mailtype;.

oraCmd.parameters.Add("@orderid",OracleType.Varchar).value=orderid;.也行.......

或者是:

string upSql="update orderhist set mailtype=' "+mailType+" ',' " where orderid=' "+orderId+" ' ";

第三个问题部署:

程序写完了,在本地部署访问没问题了,一上传到服务器就报错 说找不到程序集,又是找了N长时间,服务器用的是IIS6.0自带的.NET Framework 1.0 我用的是2.0,不报错才怪,服务器装上VS2005就OK了,又报其它的错误说:System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本,但是我在服务器上装的是ORACLE92,不低啊,一查才知道是权限问题,具体解决方法参考:http://hi.baidu.com/yanguang1670/blog/item/8677d124f83fa7308744f91c.html,改了之后重启一下服务器OK,问题解决了

 

虽然程序功能很简单但是却费了一番功夫,写程序一定要小心,仔细,少犯低级错误

 

最近在原有基础上又加了两列  发货时间(senddt date类型)  运单编号(mailid varchar2类型)  两列均采用模板列,senddt如下:

 <asp:TemplateField HeaderText="发货时间">               
                <ItemTemplate> 
                <asp:TextBox id="txtTime"  type="text" runat="server" οnfοcus="new WdatePicker(this,'%Y-%M-%D',true)"   mindate="2008-8-1" Text='<%# Eval("senddt","{0:d}") %>' Width="123px"/>
                  &nbsp;&nbsp;&nbsp;<br/>
                </ItemTemplate>
                <ItemStyle Width="90px" />
            </asp:TemplateField>

采用了My97DatePicker,刚开始用的是4.2版本总报错说calendar.js中$FF未定义,后来没办法改成3.0 版本就OK了,还加了一张表  operatorFile(操作日志)

create table  operatorFile
(
  Oid number primary key,
  Otime date, --操作时间
  Oname varchar2(100),--操作名称
  UserName varchar2(10)--操作人姓名 
)

 

oid 自动增长

create  sequence seq_operId
start with 1
increment by 1
nomaxvalue
nocycle

  因为要在程序中插入数据,所以创建一个触发器触发序列

 

create or replace trigger trig_oper before insert  on operatorfile for each row
  begin  
    select seq_operid.nextval into :NEW.oid from dual;    
  end;

 

开始写成了 select seq_operid.nextval into New.oid from dual  报错:触发器无效且未通过确认,后来才发现少了:

晕死

 

写程序一定要小心,看似简单的东西 稍不注意就错了

 

程序部署也得注意,XP 系统上不支持装IIS6.0,使用的服务器环境为Win2003+IIS6.0+SQLSERVER2000 , IIS上原来部署有.NET1.0的程序,后来我写的另一个程序时2.0版本的,部署上去访问就报错:

Server Application Unavailable

当时就蒙了,后来一查原来1.0和2.0的版本放在同一IIS上会出错,具体解决办法见:http://www.cnblogs.com/cwbboy/archive/2006/07/11/339710.html 

 

 

还有IIS6.0默认情况下Web服务扩展里ASP服务时被禁用的,被禁用的还有CGI扩展,ISAPI扩展,Internet数据连接器,WebDAV,在服务器端的包含文件 ,如果程序部署上去出现404的错误,有可能就是相关的服务被禁用了,尽量不要把发布的程序放在C盘下面,有可能会造成无法访问

 记于20090806

 

 

 20090921新进展

 

在原有基础上加了水晶报表功能 本地运行OK后上传到服务器报错:

Server Error in '/report' Application

Parser Error Message: Could not load file or assembly 'CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' or one of its dependencies. 系统找不到指定的文件。
Line 57:         -->
Line 58: <httpHandlers><add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/></httpHandlers></system.web>
Line 59: </configuration>

 

错误意思是说无法加载  记录水晶报表信息的程序集

解决方案如下:

在C盘搜索  CRRedist2005_x86.msi  上传到服务器 并安装 就OK拉,该程序记录的是水晶报表的相关信息 

 

总之部署程序要记住的是:服务器上的环境必须和本机上开发的环境保持一致 ,当然操作系统等除外,有的时候由操作系统造成的权限问题而导致出错的例子也非常多  如果本地和服务器上的完全保持一致那倒可以省去很多麻烦   当然这是理想情况 正所谓兵来将挡 水来土掩

遇到的问题多了 慢慢就有经验了

 

 

 

2010-01-09

 装了个虚拟机,是Windows2003的操作系统,ASP.NET应用程序部署在虚拟机上,在虚拟机上可以访问 但是在本机不能访问,找了半天 原来是把虚拟机的  VMware Network Adapter VMnet8 给禁用了 ,启用就OK了

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值