笑萧亦然


  做一个有用的程序员
  每天都有前进的方向,每天都有新的起点。当我白发时才会有回忆的往事。
posts - 38, comments - 7, trackbacks - 0, articles - 2
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

2012年2月3日

关于服务器(WINDOWS 2008)上出现附件上传出现大于20M报超时或出现HTTP Error 404.13 - Not Found的问题说明:

 

在站点文件web.config文件中找到如下描述中的节点配置:

 

一、配置站点的全部页面的默认超时时间和上载文件大小

executionTimeout表示的是关闭前允许发生的上载秒数300毫秒=0.3秒,maxRequestLength表示的是上载到服务器的文件大小51200Kb=50M

<configuration>

<system.web>

 <httpRuntime executionTimeout="300" maxRequestLength="51200" />

</system.web>

</configuration>

 

二、配置单个文件的默认超时时间和上载文件大小

<configuration>

<location path="KMAddFile.aspx">

    <system.web>

      <httpRuntime executionTimeout="9000" maxRequestLength="204800" />

    </system.web>

 </location>

</configuration>

 

则表示说KMAddFile页面 按对应的规则允许的上载秒数9秒,上载的文件大小最大200M

 

三、配置站点的最大上载到服务器的文件大小 maxAllowedContentLength

 表示的是最大上载到服务器的文件大小204800KB=200M

</system.webServer>

    <security>

      <requestFiltering>

        <requestLimits maxQueryString="4096" maxAllowedContentLength="204800">

        </requestLimits>

      </requestFiltering>

    </security>

 </system.webServer>

 

出现问题说明:

1. 公文页面的附件大于20M出现  System.Web.HttpException: 请求已超时。出现此问题需修改第一点中的executionTimeout改大即可

2. 文管中心上传大于30M的文件出现404.13的现象,出现此问题需修改第三点中的maxAllowedContentLength的大小即可.

 

 

posted @ 2012-02-03 09:41 笑萧亦然 阅读(7) 评论(0) 编辑

2011年9月29日

/*存储过程*/
sp_databases --列出服务器上的所有数据库
sp_server_info --列出服务器信息,如字符集,版本和排列顺序
sp_stored_procedures--列出当前环境中的所有存储过程
sp_tables --列出当前环境中所有可以查询的对象
sp_start_job --立即启动自动化任务
sp_stop_job --停止正在执行的自动化任务
sp_password --添加或修改登录帐户的密码
sp_configure --显示(不带选项)或更改(带选项)当前服务器的全局配置设置
sp_help --返回表的列名,数据类型,约束类型等
sp_helptext --显示规则,默认值,未加密的存储过程,用户定义的函数,
--触发器或视图的实际文本
sp_helpfile --查看当前数据库信息
sp_dboption --显示或更改数据库选项
sp_detach_db --分离数据库
sp_attach_db --附加数据库
sp_addumpdevice --添加设备
sp_dropdevice --删除设备
sp_pkeys --查看主键
sp_fkeys --查看外键
sp_helpdb --查看指定数据库相关文件信息
sp_addtype --自建数据类型
sp_droptype --删除自建数据类型
sp_rename --重新命名数据库
sp_executesql --执行SQL语句
sp_addlogin --添加登陆
sp_droplogin --删除登录
sp_grantdbaccess --把用户映射到登录,即添加一个数据库安全帐户并授予塔访问权限
sp_revokedbaccess--撤销用户的数据访问权,即从数据库中删除一个安全帐户
sp_addrole --添加角色
sp_addrolemember --向角色中添加成员,使其成为数据库角色的成员
sp_addsrvrolemember--修改登录使其成为固定服务器角色的成员
sp_grantlogin --允许使用组帐户或系统用户使用Windows身份验证连接到SQL
sp_defaultdb --修改一个登录的默认数据库
sp_helpindex --用于查看表的索引
sp_cursoropen --定义与游标和游标选项相关的SQL语句,然后生成游标
sp_cursorfetch --从游标中提取一行或多行
sp_cursorclose --关闭并释放游标
sp_cursoroption --设置各种游标选项
sp_cursor --用于请求定位更新
sp_cursorprepare --把与游标有关的T-SQL语句或批处理编译成执行计划,但并不创建游标
sp_cursorexecute --从由sp_cursorprepare创建的执行计划中创建并填充游标
sp_cursorunprepare --废弃由sp_cursorprepare生成的执行计划
sp_settriggerorder --指定第一个或最后一个激发的、与表关联的 AFTER 触发器。在第一个
--和最后一个触发器之间激发的 AFTER 触发器将按未定义的顺序执行

posted @ 2011-09-29 14:22 笑萧亦然 阅读(13) 评论(0) 编辑

2011年4月27日

以下代码是客户写给我的,说是他们JAVA的加密方法,其中红色的那两句差点把我整垮了。

Java人士说:content是明文  key是密钥,用密钥来加密明文。

C#认识说:什么明文密钥一起丢进去,所以只需要 content+key 丢到computehash(...)一切尽在转化中。。。。

 

 private static String getDigest(String content, String key, String algorithm) {

                   try {

                            byte[] plainText = content.getBytes("utf-8");

                            MessageDigest messageDigest = MessageDigest.getInstance(algorithm);

                            messageDigest.update(plainText);

                            byte[] digest = messageDigest.digest(key.getBytes("utf-8"));

                            return byte2hex(digest);

                   } catch (NoSuchAlgorithmException ex) {

                            Debug.error("Error digest algorithm: " + algorithm);

                   } catch (UnsupportedEncodingException e) {

                            Debug.error("Error digest algorithm: " + algorithm);

                   }

                   return null;

         }

 

         private static String byte2hex(byte[] b) {

                   StringBuilder hs = new StringBuilder();

                   String stmp = "";

                   for (int n = 0; n < b.length; n++) {

                            stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));

                            if (stmp.length() == 1) {

                                     hs.append("0" + stmp);

                            } else {

                                     hs.append(stmp);

                            }

                   }

                  return hs.toString();

         }

 

红色部分其实就是:

messageDigest.update(plainText);

messageDigest.update(key.getBytes("utf-8"));

byte[] digest = messageDigest.digest();

可恶的是本人就没有学过JAVA,看了三遍的JDK说明,无解,

最后才看到了

 

SHA-1 例子:
         现在有i1、i2和i3,分别是3个字节数组,构成一个消息,计算其散列函数值:
MessageDigest sha1 = MessageDigest.getInstance(“sha-1”);
sha1.Update(i1);
sha1.Update(i2);
sha1.Update(i3);
byte[] hash = sha1.digest();
        对digest方法的调用则说明输入消息结束。进行初始化,update提交的数据丢失。Digest方法也可以把输入的最后一部分作为参数:

看到这里我真的想哭。原来就是字符串的一个叠加,搞得我想死。我一直以为这两个函数功能是不一样的。鬼才晓得后面这个

digest(byte[]),其实和Update是一样的。


sha1.Update(i1);
sha1.Update(i2);
byte[] hash = sha1.digest(i3);
         在一些散列函数实现中,可以通过复制(clone)来获得中间散列数值。如:
要分别计算:i1,i1和i2,i1、i2和i3的散列数值。
//计算i1 hash
sha1.update(i1);
byte[] i1Hash = sha1.clone().digest();
//计算i1和i2 hash
sha1.update(i2);
byte[] i12Hash = sha1.clone().digest();
//计算i1、i2和i3 hash
sha1.update(i3);
byte[] i123Hash = sha1.digest();

 

 

太感谢上苍了。

 

 1         //方法1:
 2 
 3         //16位
 4 
 5         public static string GetMd5(string str)
 6         {
 7             System.Security.Cryptography.MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
 8             string a = BitConverter.ToString(md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(str)), 48);
 9             a = a.Replace("-""");
10             return a;
11         }
12 
13         //32位 
15         public static string GetMd51(string str)
16         {
17             System.Security.Cryptography.MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
18             string a = BitConverter.ToString(md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(str)));
19             a = a.Replace("-""");
20             return a;
21         }
22 
23         //方法2:
24 
25         public static string Hash(string toHash)
26         {
27             MD5CryptoServiceProvider crypto = new MD5CryptoServiceProvider();
28             byte[] bytes = Encoding.UTF8.GetBytes(toHash);
29             bytes = crypto.ComputeHash(bytes);
30             StringBuilder sb = new StringBuilder();
31             foreach (byte num in bytes)
32             {
33                 sb.AppendFormat("{0:x2}", num);
34             }
35             return sb.ToString();        //32位
36             return sb.ToString().Substring(816);        //16位
37         }

 

 

Java加密出来的是900cb2d97c87b750fd1adafbb322fa45

C#加密出来的是:900cb2d97c87b750fd1adafbb322fa45 

请继续参考http://www.jeanwen.com/blog/page/82

写的很好。

 

 

posted @ 2011-04-27 13:17 笑萧亦然 阅读(150) 评论(0) 编辑

2011年4月20日

 

根据经纬度坐标计算两点间几何距离 - 椰子树下 - CSDN博客

posted @ 2011-04-20 15:11 笑萧亦然 阅读(53) 评论(0) 编辑

2011年4月13日

--获取库中的所有字段的描述
SELECT 
    [Table Name] = OBJECT_NAME(c.object_id),
    [Column Name] = c.name,
    [Description] = ex.value 
FROM 
    sys.columns c 
LEFT OUTER JOIN 
    sys.extended_properties ex 
ON 
    ex.major_id = c.object_id
    AND ex.minor_id = c.column_id 
    AND ex.name = 'MS_Description' 
WHERE 
    OBJECTPROPERTY(c.object_id, 'IsMsShipped')=0 
    -- AND OBJECT_NAME(c.object_id) = 'your_table'
ORDER 
    BY OBJECT_NAME(c.object_id), c.column_id

--获取某个表中所有字段方法
1)
 SELECT name
    FROM syscolumns
    WHERE [id] = OBJECT_ID('tablename')
2)
SELECT column_name
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE table_name='tablename'

3)
EXEC sp_columns @table_name='tablename'

 

posted @ 2011-04-13 14:19 笑萧亦然 阅读(20) 评论(0) 编辑

2011年4月11日

摘要: 多个CSS风格共用同一(背景)图片_那一片天_百度空间阅读全文

posted @ 2011-04-11 11:28 笑萧亦然 阅读(19) 评论(0) 编辑

2011年3月21日

摘要: SET LOCK_TIMEOUT 1800 SET TRANSACTION ISOLATION LEVEL READ COMMITTED BEGIN TRANSACTION DECLARE @PRD_NO VARCHAR(30)DECLARE @CUS_NO VARCHAR(20)DECLARE @STD_LEVEL VARCHAR(10)DECLARE @USR VARCHAR(12) DECLARE MY_CURSOR CURSOR FORSELECT DISTINCT PRD_NO,CUS_NO,STD_LEVEL,USR FROM CUS_ML_GGEC HOLDLOCK WHERE.阅读全文

posted @ 2011-03-21 17:50 笑萧亦然 阅读(19) 评论(0) 编辑

摘要: 1 如何锁一个表的某一行A 连接中执行SET TRANSACTION ISOLATION LEVEL REPEATABLE READbegin transelect * from tablename with (rowlock) where id=3waitfor delay '00:00:05'commit tranB连接中如果执行update tablename set colname='1...阅读全文

posted @ 2011-03-21 17:43 笑萧亦然 阅读(104) 评论(0) 编辑

2011年3月18日

摘要: 用DECLARE创建变量必须@开头 SET为变量赋值 全局变量不能自定义, @@SERVERNAME : 返回运行SQL Server 2000本地服务器的名称。 @@REMSERVER : 返回登录记录中记载的远程SQL Server服务器的名称。 @@CONNECTIONS : 返回自上次启动SQL Server以来连接或试图连接的次数,用其可让管理人员方便地了解今天所有试图连接服务器的次数...阅读全文

posted @ 2011-03-18 09:45 笑萧亦然 阅读(123) 评论(0) 编辑

2010年10月8日

摘要: 代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><scriptlanguage="javascript"type="text/javascript">//显示写评语functionshowDiv(){document.all.divSh...阅读全文

posted @ 2010-10-08 13:02 笑萧亦然 阅读(153) 评论(0) 编辑