解決超過兩小時的問題記錄

來源:互聯網
上載者:User

有時很小的一個問題可能需要花費很長的時間去解決,這裡就記錄這些曾經花費我時間的問題。

2011-12-22:

1. 在WinForm表單中載入包含svg地圖的網頁,然後對svg上的元素進行賦值。

     原有的順序:

    a.頁面載入完初始化svg元素     

  window.onload = function htmlInit() {
            try {
                EnableWheelScroll(true);   //設定放大和拖動效果
    InitSvgElment();           //初始化Svg元素 
    getSvgDisplayData();//求情資料
    setInterval("getSvgDisplayData()","180000");//每三分鐘發送一次請求
            } catch (e) {
                alert(e.message);

            }

     b.winform上也是頁面載入完就調用svg的賦值函數,在賦值函數裡調用了需要初始化的一些變數

   結果winform在“初始化svg元素”之前執行了,導致不能為地圖元素賦值

   修改也很簡單,把  InitSvgElment();           //初始化Svg元素  放到

  $(function() {

       InitSvgElment();           //初始化Svg元素 
                   }); 裡執行。

2.啟動IE訪問帶有svg地圖的網頁,IE就崩潰重啟

   這是和360安全衛士有關,只用使用360進行系統修複就會對ie的一些設定進行“最佳化”,導致訪問svg外掛程式就崩潰

   關於部分電腦IE訪問SVG自動重啟問題  http://jiangzheng.iteye.com/blog/1275234  提供瞭解決方法

3. 在普通電腦上啟動並執行沒問題的建立登錄機碼函數,在裝有小紅傘殺毒軟體的電腦上就崩潰了不能使用

         RegistryKey Run = HKLM.CreateSubKey(@"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\");

     改成

       RegistryKey Run = HKLM.OpenSubKey(@"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\");

     就可以了。

主要是測試不全面啊,導致部署到使用者那了才發現這問題。 

4. 在js裡建立字典 Scripting.Dictionary報異常“ActiveX 組件不能建立對象”

   這個錯誤很常見,主要是要註冊一些 active dll就能解決。

  關鍵是這個問題也是在部署後運行很長一段時間之後報出來的,原因也是360惹的禍。看來生產機上還是盡量不要安裝360為好。

   ActiveX 組件不能建立對象 Scripting.Dictionary 的解決方案   http://www.cnblogs.com/291099657/archive/2009/01/02/1366955.html

 

2011-12-31:

5.原來寫了一個日誌轉寄到郵箱的小程式,在一個項目中設定的是兩小時發送一次,剛開始時運行很好,後來我就收不到郵件了。於是懷疑客戶那外網斷了或者伺服器重啟後沒人登陸系統程式沒能自動運行。後來同事過去查看說外網沒問題,機器也沒有重啟,軟體還在運行著。他查看後我又能收到郵件了。。。。。。問題不解中啊!!!其實我這位同事沒有給我說一個異常情況,在他查看軟體已經彈出了一個“發送郵件錯誤”的提示框。看看代碼:

        private void LogTimer_Tick(object sender, EventArgs e)
        {
            this.LogTimer.Stop();
            try
            {
                this.SendEmail(true);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "郵件發送失敗", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            this.LogTimer.Start();
        }

    問題就出在這個彈出框上,在無人值守的情況下沒人去點擊這個彈出框,定時器就停在那裡了。。。。。於是不能收到郵件了。

2012-1-11:

6. 在windows Serveice 中擷取當前應用程式路徑

  記得好久以前有個windows service項目,使用 System.Environment.CurrentDirectory+“/Log.txt”方式指定路徑,開發時沒有調試這段代碼,後來在服務程式所在目錄下怎麼也找不到記錄檔,經過調試才知道 在winform程式下使用 System.Environment.CurrentDirectory 可以返回目前的目錄,但是Windows Service下返回的卻是   

 "C:\\WINDOWS\\system32",同樣如果不知道路徑直接使用類似於 System.IO.File.Create("aaa.txt") 的代碼建立記錄檔,該檔案也是在 "C:\\WINDOWS\\system32" 目錄下。一般在windows service項目中使用 AppDomain.CurrentDomain.BaseDirectory 可以正確擷取目前的目錄。

 2012-2-4:

7.因為房東不想提供網路了,所以換了一個不能稱作公司的小公司提供所謂的光纖到樓的網路,在他們安裝時就聽一個做線的抱怨網線不好,並且在接網線時竟然是直接剝皮串連1236(好像是這四個)用白色膠帶纏上完事,更要命的是在樓道裡布線竟然把網線和電線綁一起。我的現象是昨天晚上網路用的好好的快睡覺時ADSL 678錯誤連不上了,但網卡是好的,就睡覺了。今天在外面玩了一天,晚上回來發現樓道裡電線和網線綁一起的那個保護器跳閘了,也沒在意推上去就算了。進屋發現

網路還是不行,網卡燈不亮。於是理線找到我的那個頭,集線器那裡竟然沒插。果斷插上,問題依舊。懷疑是線做的有問題,就把那幫做網路的找來了。來了三個人一個據說是老員工閑的很牛氣的樣子用牙咬水晶頭。網線頭都重做了,他們竟然不帶測線器,還是插電腦上測試,燈依舊不亮。懷疑我的網卡驅動有問題,卸載重裝,問題依舊,其實除非是第一次裝完的系統驅動出問題的可能性非常小。後來就把他們給我做的線插到我的一個無線路由器上,燈亮,證明他們做的線沒問題。找跟網線把我電腦接路由器上,燈不亮,網卡有問題。

但昨天用的好好的,一天沒動,網卡不應該出現問題啊,百思不得其解。拿著手機手電筒對著網卡看了半天發現裡面有個跟頭髮絲一樣的東西,大口吹出來,插上網線問題依舊啊。關機重啟,燈不亮,重啟過程中插上筆記本電源,網卡燈亮了。啟動後插拔幾次,沒問題。換了個長網線跟外面的網線對接,連上之後,燈就不亮了。又反覆幾次驗證是不是網卡和電源之間的模組有問題啊,貼近電腦聞了下沒異味,呵呵。拿著電腦到走廊裡找了一個很短的網線連到集線器上,燈亮,連網沒問題。我覺著問題出在網線上,冒著生命危險我把網線和電信捆綁在一起的紮線隔斷,把網線耷拉著,插到電腦上,問題解決了。

過程很曲折啊,覺著他們這種創業型公司如果不注意技術細節,也許會走不少網路。技術是創業的本錢啊。

 

2012-4-15:  離職了,把以前的工作記錄文檔貼過來

1.命令列暫停iis: net stop iisadmin
命令列啟動iis:net start iisadmin ; net start w3svc
注意,啟動iis需要執行兩個命令,一個是 net start iisadmin ,這個是網上最常見的,一般的教程裡多是這麼寫的,但是這樣無法啟動http服務的.所以還要執行一個 net start w3svc 命令,這樣就可以啟動iis的服務了.
所以,總結一下,命令列開啟IISs 需要兩個命令,命令列關閉IIS只需一個命令.
==========================================================================================================================
1、擷取使用者表名:
SELECT name FROM sysobjects WHERE type = 'U' AND sysstat = '83'

注意:一般情況只需要type = 'U',但有時候會有系統資料表混在其中(不知道什麼原因),加上後面一句後就能排除這些系統資料表了

2、得到表中的所有列資訊(包含資料類型名):
SELECT syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length
FROM syscolumns, systypes
WHERE syscolumns.xusertype = systypes.xusertype AND "syscolumns.id = object_id('tableName')

注意點:
(1)這裡為了重點突出某些重要內容,選取了其中幾項資訊輸出。
(2)syscolumns表中只含有資料類型編號,要擷取完整的名字需要從systypes表中找,一般使用者使用的資料類型用xusertype對應比較好,不會出現一對多的情況。
(3)syscolumns.length得到的是實體記憶體的長度,所以nvarchar和varchar等類型在資料庫中的顯示是這個的一半。

3、得到表中主鍵所包含的列名:
SELECT syscolumns.name
FROM syscolumns,sysobjects,sysindexes,sysindexkeys
WHERE syscolumns.id = object_id('tablename') AND sysobjects.xtype = 'PK' AND sysobjects.parent_obj = syscolumns.id AND sysindexes.id = syscolumns.id AND sysobjects.name = sysindexes.name AND sysindexkeys.id = syscolumns.id AND sysindexkeys.indid = sysindexes.indid AND syscolumns.colid = sysindexkeys.colid

注意:這是在4張系統資料表中尋找的,關係比較複雜,大致可以表示為:
syscolumns 中存有表中的列資訊和表id,sysobjects表中存有主鍵名字(即PK_Table類似)和表id,sysindexes中存有主鍵名字和表id和 index編號,sysindexkeys中存有表id和index編號和列編號.
==========================================================================================================================
SQL:檢查連接埠號碼

問:我建立了一個使用TCP/IP網狀圖書館的伺服器別名。用戶端伺服器別名被配置為動態確定所使用的連接埠。怎樣才能找出客戶所使用的連接埠以便我設定自己的防火牆?

答:用戶端用於聯絡SQL Server執行個體的連接埠與該執行個體用於監聽用戶端請求執行個體的連接埠是一樣的。您有幾種方法來確定正被使用的連接埠號碼。請記住,當伺服器首次被安裝時,SQL Server 動態地選擇連接埠。以後每次伺服器暫停工作和重新啟動時使用的連接埠號碼都是一樣的。動態連接埠分配是一次性的事件。

要查看正被SQL Server執行個體使用的連接埠號碼,可以選擇以下的任何一種方法:

開啟Server網路工具 + 生產力,點擊啟用的協議列表中TCP/IP條目的屬性。

查看特定執行個體的錯誤記錄檔。您會在錯誤記錄檔中看到與下面相似的條目:

SQL Server listening on 127.0.0.1: 1362.
冒號後的四位元是SQL Server正用於監聽IP地址的連接埠,冒號左邊是詳細的資訊。

查看註冊表。根據您安裝和升級SQL Server的方式,具體的註冊表子鍵會有所不同,但您會看到和下面相似的鍵:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
InstanceName\MSSQLServer\SuperSocketNetLib\Tcp\
InstanceName是您正在使用的SQL Server執行個體的名稱(對於預設執行個體,InstanceName為MSSQLServer)。該鍵有一個名為TcpPort的條目,其中包含了正在被使用的連接埠號碼。

您需要這個連接埠號碼來設定用戶端和伺服器之間的防火牆。用戶端向SQL Server的UDP 1434連接埠發送特殊的請求,以確定使用哪一個連接埠。SQL Server返回可用的伺服器執行個體的列表,以及每個執行個體正在使用的連接埠。如果屏蔽了UDP 1434連接埠,則通過防火牆與SQL Server執行個體的串連將無法實現。

==========================================================================================================================
Oracle服務說明

HOME_NAME - Oracle Home名稱,如OraHome92、OraHome81

(1)OracleServiceSID

資料庫服務,這個服務會自動地啟動和停止資料庫。如果安裝了一個資料庫,它的預設啟動類型為自動。服務進程為Oracle.EXE,參數檔案initSID.ora,記錄檔SIDALRT.log,控制台SVRMGRL.EXE、SQLPLUS.EXE。

(2)OracleHOME_NAMETNSListener

監聽器服務,服務只有在資料庫需要遠端存取時才需要(無論是通過另外一台主機還是在本地通過 SQL*Net 網路通訊協定都屬於遠端存取),不用這個Oracle服務就可以訪問本機資料庫,它的預設啟動類型為自動。服務進程為TNSLSNR.EXE,參數檔案 Listener.ora,記錄檔listener.log,控制台LSNRCTL.EXE,預設連接埠1521、1526。

(3)OracleHOME_NAMEAgent

OEM代理服務,接收和響應來自OEM控制台的任務和事件請求,只有使用OEM管理資料庫時才需要,它的預設啟動類型為自動。Oracle服務進程為DBSNMP.EXE,參數檔案snmp_rw.ora,記錄檔nmi.log,控制台LSNRCTL.EXE,預設連接埠1748。

(4)OracleHOME_NAMEClientCache

名字快取服務,服務緩衝用於串連遠端資料庫的Oracle Names 資料。它的預設啟動類型是手動。然而,除非有一台Oracle Names 伺服器,否則沒有必要運行這個服務。服務進程為ONRSD.EXE,參數檔案NAMES.ORA,記錄檔ONRSD.LOG,控制台 NAMESCTL.EXE。

(5)OracleHOME_NAMECMAdmin

串連管理服務,是構建Connection Manager伺服器所用,只有伺服器作為Connection Manager才需要,它的預設啟動類型是手動。服務進程為CMADMIN.EXE,參數檔案CMAN.ORA,記錄檔CMADM_PID.TRC,控制台CMCTL.EXE,預設連接埠1830。

(6)OracleHOME_NAMECMan

串連網關服務,是構建Connection Manager伺服器所用,只有Oracle伺服器作為Connection Manager才需要,它的預設啟動類型是手動。服務進程為CMGW.EXE,參數檔案CMAN.ORA,記錄檔CMAN_PID.TRC,控制台 CMCTL.EXE,預設連接埠1630。

(7)OracleHOME_NAMEDataGatherer

效能包資料擷取服務,除非使用Oracle Capacity Planner 和 Oracle Performance Manager,否則不需要啟動,它的預設啟動類型是手動。服務進程為VPPDC.EXE,記錄檔alert_dg.log,控制台 vppcntl.exe。

(8)OracleHOME_NAMEHTTPServer

Oracle提供的WEB伺服器,一般情況下我們只用它來訪問Oracle Apache 目錄下的Web 頁面,比如說JSP 或者modplsql 頁面。除非你使用它作為你的HTTP服務,否則不需要啟動(若啟動它會接管IIS的服務),它的預設啟動類型是手動。Oracle服務進程為 APACHE.EXE,參數檔案httpd.conf,預設連接埠80。

(9)OracleHOME_NAMEPagingServer

通過一個使用數據機的數字傳呼機或者電子郵件發出警告(沒試過),它的預設啟動類型是手動。服務進程PAGNTSRV.EXE,記錄檔paging.log。

(10)OracleHOME_NAMENames

Oracle Names服務,只有伺服器作為Names Server才需要,它的預設啟動類型是手動。Oracle服務進程NAMES.EXE,參數檔案NAMES.ORA,記錄檔NAMES.LOG,控制台NAMESCTL.EXE,預設連接埠1575。

(11)OracleSNMPPeerMasterAgent

SNMP服務代理,用於支援SNMP的網管軟體對伺服器的管理,除非你使用網管工具監控資料庫的情況,否則不需要啟動,它的預設啟動類型是手動。服務進程為AGNTSVC.EXE,參數檔案MASTER.CFG,預設連接埠161。

(12)OracleSNMPPeerEncapsulater

SNMP協議封裝服務,用於SNMP協議轉換,除非你使用一個不相容的SNMP代理服務,否則不需要啟動,它的預設啟動類型是手動。服務進程為ENCSVC.EXE,參數檔案ENCAPS.CFG,預設連接埠1161。

(13)OracleHOME_NAMEManagementServer

OEM管理服務,使用OEM時需要,它的預設啟動類型是手動。Oracle服務進程為OMSNTSVR.EXE,記錄檔oms.nohup。
==========================================================================================================================
Oracle10g 在PLSQL Developer上建立資料表空間指令碼 Oracle10g 在PLSQL Developer上建立資料表空間指令碼
建立資料表空間
create tablespace Joy

datafile 'D:\oracle\product\10.2.0\oradata\orcl\Joy.def' size 500M
autoextend on next 100M maxsize unlimited logging
extent management local autoallocate
segment space management auto;
 

1) DATAFILE: 資料表空間資料檔案存放路徑
2) SIZE: 起初設定為200M
3) UNIFORM: 指定區尺寸為128k,如不指定,區尺寸預設為64k
4) 空間名稱MOF_TEMP與 資料檔案名稱 MOF_TEMP.dbf 不要求相同,可隨意命名.
5) AUTOEXTEND ON/OFF 表示啟動/停止自動擴充資料表空間
6) alter database datafile ' D:\oracle\product\10.2.0\oradata\orcl\MOF_TEMP.dbf ' resize 500m; //手動修改資料檔案大小為500M
刪除資料表空間
DROP TABLESPACE Joy INCLUDING CONTENTS AND DATAFILES;
 

二.建立使用者

create user test identified by test default tablespace Joy;

三.授權

grant dba to Joy;
grant unlimited tablespace to Joy;

==========================================================================================================================

SQL Server 2005的ROW_NUMBER,以及ROW_NUMBER時不排序 --1.看到NHibernate是這樣寫的分頁,感覺寫起來比較容易理解(應該不會有效率問題吧?)
--with只是定一個別名?

with query as (select ROW_NUMBER() over(order by (select 0)) AS ROWNUM, * FROM Product)
select * from query where ROWNUM BETWEEN 5 AND 10

--2.ROW_NUMBER必須指寫over (order by **),有時我根本就不想排序,想按原始順序(排序也是要時間的嘛)
--方法就是:
select ROW_NUMBER() over(order by (select 0)) AS ROWNUM,* FROM Product

--要說的就這麼多。
==========================================================================================================================
解決ORA-12560: TNS: 協議適配器錯誤,與大家共用
今天遭遇ORA-12560: TNS: 協議適配器錯誤的問題,經過一番努力問題已經解決,與大家共用。
造成ORA-12560: TNS: 協議適配器錯誤的問題的原因有三個:
1.監聽服務沒有起起來。windows平台個一如下操作:開始---程式---管理工具---服務,開啟服務面板,

啟動oraclehome92TNSlistener服務。
2.database instance沒有起起來。windows平台如下操作:開始---程式---管理工具---服務,開啟服務

面板,啟動oracleserviceXXXX,XXXX就是你的database SID.
3.註冊表問題。regedit,然後進入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0將該環境變數ORACLE_SI

D設定為XXXX,XXXX就是你的database SID.或者右幾我的電腦,屬性--進階--環境變數---系統變數--建立

,變數名=oracle_sid,變數值=XXXX,XXXX就是你的database SID.或者進入sqlplus前,在command line下

輸set oracle_sid=XXXX,XXXX就是你的database SID.
經過以上步驟,就可以解決問題。
===============================================================================================================================
雙網卡主機設定雙網關的方法
Web主機需要進行內部網和互連網的雙向訪問,一個子網為中立區,通過電信出口串連Internet,網關設為192.168.1.254;一個子網採用路由器專線,與單位大型內部網相連,網關設為10.1.8.254。

每個機器裝兩塊網卡分設兩個網關[一般情況下重要單位是不充許同時物理串連兩個網路的,不安全]。現在只有每次改變網關才能在Internet和內部網之間通訊,但不能同時與Internet和內部網相連。問題是能不能不改變網關就同時與Internet和內部網相連?

結合網上的各種網關路由知識,最簡單的方法為:

1.設定其中接internet的網卡的網關為192.168.1.254,啟用後就是預設閘道;

2.將串連單位內部網的網卡IP配好後,設網關設定為空白(即不設網關),啟用後,此時內網無法通過網關路由;

3.輸入route print,查看內部網IP的metric;

3.進入CMD,運行:

route -p add 10.0.0.0 mask 255.0.0.0 10.1.8.254 metric 30

(意思是將10*的IP包的路由網關設為10.1.8.254 ,-p 參數代表永久寫入路由表)

4.同時啟用兩個網卡,兩個網關可以同時起作用了,兩個子網也可以同時訪問了,關機重啟後也不用重設!

===============================================================================================================================

PLSQL Developer oracle 10g 建立、刪除資料表空間,更名,
通過pl/sql登入到Oracle資料庫上,然後執行菜單:檔案/建立/命令視窗 ,開啟一個命令視窗然後在該命令視窗中執行指令碼建立和刪除資料表空間

建立資料表空間

create tablespace db_name_
datafile 'D:\oracle\product\10.2.0\oradata\orcl\db_name_.dbf' size 200M
autoextend on next 10M maxsize unlimited logging
extent management local autoallocate
segment space management auto;

1) DATAFILE: 資料表空間資料檔案存放路徑

2) SIZE: 起初設定為200M

3) UNIFORM: 指定區尺寸為128k,如不指定,區尺寸預設為64k

4) 空間名稱:db_name_ 與 資料檔案名稱 db_name_.dbf 不要求相同,可隨意命名.

5) AUTOEXTEND ON/OFF 表示啟動/停止自動擴充資料表空間

6) alter database datafile ' D:\oracle\product\10.2.0\oradata\orcl\db_name_.dbf ' resize 500m; //手動修改資料檔案大小為500M

7) DROP TABLESPACE db_name_ INCLUDING CONTENTS AND DATAFILES; //刪除資料表空間

測試建立資料表空間
create tablespace IMSTEST
datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HNORCL\IMTEST.def' size 200M       
autoextend on next 20M maxsize unlimited logging
extent management local autoallocate
segment space management auto;
commit;

建立使用者,設定DBA角色
CREATE USER MARTIN
IDENTIFIED BY martinpwd
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
例如:
--建立新使用者
CREATE USER jack
IDENTIFIED BY "123"
DEFAULT TABLESPACE "USERS"
TEMPORARY TABLESPACE "TEMP"
grant connect to jack ;
grant dba to jack ;
grant sysdba to jack ;

//刪除使用者
drop user jack   cascade;

[Oracle 10g]-關於資料表空間的更名
     SQL> COL FILE_NAME format a70
  SQL> SET linesize 120
  SQL> SET pagesize 99
  SQL> COL TABLESPACE_NAME format a10
  SQL>
  SQL> SELECT file_name, tablespace_name FROM dba_data_files;

 ==================================================================

2012-05-17:

1.還原資料庫時老是說無法擷取獨佔訪問權,使用下面這條語句就管用了
ALTER DATABASE portal_develop SET OFFLINE WITH ROLLBACK IMMEDIATE

 

2. Flex的跨域訪問WebService

   a.在網站下放一個跨域檔案

   b.在flex裡初始化函數中加一條載入跨域檔案的語句。

遇到的兩個問題:

  a.跨域檔案的格式,從 flash play 9.0 之後有新的格式,這個一開始沒注意到

  b.在flex中載入跨域檔案時需要引用一個包名,一開始不知道。

 

。。。。未完待續

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.