卡西卡的小寶庫
寶庫寶庫寶庫

主要是用WScript.Shell是讀寫Registry的值。
若發生「 Automation 伺服程式無法產生物件」的錯誤就要調整IE的安全性設定,將「起始不標示為安全的ActiveX控制項」設定為啟用或提示。

<script language="javascript"> // 列印 function fnPrint() { try { // 儲存原本頁首頁尾的設定,然後設定空白 var ret = saveAndClearSetting(); // 列印 window.print(); // 回存原本頁首頁尾的設定 if ( ret ) restoreSetting(); } catch (e) { alert("err="+e.description); } } var hkey_path = "HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\PageSetup\\"; var hkey_key_header = hkey_path+"header"; // 頁首 var hkey_key_footer = hkey_path+"footer"; // 頁尾 var hkey_key_margin_bottom = hkey_path+"margin_bottom"; // 邊界(下) var hkey_key_margin_left = hkey_path+"margin_left"; // 邊界(左) var hkey_key_margin_right = hkey_path+"margin_right"; // 邊界(右) var hkey_key_margin_top = hkey_path+"margin_top"; // 邊界(上) var old_header = "&w&b第 &p 頁,共 &P 頁"; var old_footer = "&u&b&d"; // 儲存原本頁首頁尾的設定,然後設定空白 function saveAndClearSetting() { try { var RegWsh = new ActiveXObject("WScript.Shell"); old_header = RegWsh.RegRead(hkey_key_header); old_footer = RegWsh.RegRead(hkey_key_footer); RegWsh.RegWrite(hkey_key_header,""); RegWsh.RegWrite(hkey_key_footer,""); return true; } catch (e) { if ( e.description.indexOf("伺服程式無法產生物件") != -1 ) { alert("請調整IE瀏覽器的安全性\n網際網路選項\安全性\自訂層級\n「起始不標示為安全的ActiveX控制項」設定為啟用或提示。"); } // if else { alert("ERR="+e.description); } // else } // catch return false; } // 回存原本頁首頁尾的設定 function restoreSetting() { try { var RegWsh = new ActiveXObject("WScript.Shell"); RegWsh.RegWrite(hkey_key_header,old_header); RegWsh.RegWrite(hkey_key_footer,old_footer); } catch (e) { if ( e.description.indexOf("伺服程式無法產生物件") != -1 ) { alert("請調整IE瀏覽器的安全性\n網際網路選項\安全性\自訂層級\n「起始不標示為安全的ActiveX控制項」設定為啟用或提示。"); } // if else { alert("ERR="+e.description); } // else } // catch } </script>
http://klcintw4.blogspot.com/2007/09/javascriptie.html

 

客戶今天在MS更新後,原本正常的ASP.NET網站整個不能用,在事件檢視器裡有1007和1084的記錄。

http://support.microsoft.com/kb/835387/zh-tw

MessageId = 1007
由於在組態檔的 processModel 區段中提供了無效的使用者名稱和 (或) 密碼,所以無法啟動 aspnet_wp.exe 程式。.

MessageId = 1084
無法啟動 aspnet_wp.exe。. 這項失敗的錯誤碼為 %1。. 當背景工作處理序帳戶具有權限來讀取 . NET Framework 檔案不足時, 會發生這個錯誤。 請確定 .NET Framework 安裝正確,而且安裝目錄上的 ACL 允許存取設定的帳戶。

在GOOGLE搜一下,經實際測試後,整理如下:

  1. 移除KB886903的更新(如果有的話)
  2. 編輯[C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config]
    找到 <processModel … userName="machine" password="AutoGenerate" … />
    確定 userName是machine,password是AutoGenerate。
  3. 移除ASPNET的帳號
    執行 aspnet_regiis -i
    執行 iisreset

http://klcintw4.blogspot.com/2007/08/iis8000400510071084.html

 

[JS]電視網頁畫面切換

Posted In: . By 卡西卡


測試:
<script type="text/javascript" >
window.onload = Pages_Init;
</script>
<body>
<div id="MainPage">MainPage</div>
<div id="flash0" style="display:none;">flash0</div>
<div id="flash1" style="display:none;">flash1</div>
<div id="flash2" style="display:none;">flash2</div>
<script>new Page('MainPage',10);new Page('flash0',10);new Page('flash1',10);new Page('flash2',10);</script>
</body>

 

解法:SqlCommand.CommandTimeout[msdn] 加大,預設為30(秒)。

錯誤:SQL執行的時間太長就會發生 System.Data.SqlClient.SqlException。

ex
{"已超過連接逾時的設定。在作業完成之前超過逾時等待的時間,或者是伺服器未回應。" }
    [System.Data.SqlClient.SqlException]: {System.Data.SqlClient.SqlException}
    System.Object: {System.Data.SqlClient.SqlException}
    _className: null
    _COMPlusExceptionCode: -532459699
    _exceptionMethod: <未定義的值>
    _exceptionMethodString: null
    _helpURL: null
    _HResult: -2146232060
    _innerException: { }
    _message: "系統錯誤。"
    _remoteStackIndex: 0
    _remoteStackTraceString: null
    _source: null
    _stackTrace: {System.Array}
    _stackTraceString: null
    _xcode: -532459699
    _xptrs: 0
    HelpLink: null
    HResult: -2146232060
    InnerException: { }
    Message: "已超過連接逾時的設定。在作業完成之前超過逾時等待的時間,或者是伺服器未回應。"
    Source: ".Net SqlClient Data Provider"
    StackTrace: "   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)\r\n   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)\r\n   at System.Data.SqlClient.SqlCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)\r\n   at System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)\r\n   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)\r\n   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)\r\n   at Textar.Klchang.Helper.SqlClient.DbBroker.QueryDS(String cmdText, CommandType cmdType, IDataParameter[] parameters) in d:\\project\\mmde\\core\\sqlclient3\\dbbroker.cs:line 436\r\n   at mmde.core.db.clsRptZ.RptZ02(DateTime COURSE_DATE1, DateTime COURSE_DATE2, DateTime VIEW_DATE1, Date
Time VIEW_DATE2) in d:\\project\\mmde\\web\\core\\db\\clsrptz.cs:line 56\r\n   at mmde.admin.reports.RptZ02.BindData() in d:\\project\\mmde\\web\\admin\\reports\\rptz02.aspx.cs:line 50"
    TargetSite: {System.Reflection.RuntimeMethodInfo}

其它:調整 SqlConnection.ConnectionString[msdn] (Connect Timeout, Connection Timeout)參數無效!

 

取得 IP, Hostname

Posted In: , , , . By 卡西卡

根據IP地址獲得主機名稱
// .NET 1.1 ~
System.Net.IPHostEntry host = System.Net.Dns.GetHostByAddress("192.168.0.1"); // [msdn]
Console.WriteLine(host.HostName);

// .NET 2.0 ~
System.Net.IPHostEntry host = System.Net.Dns.GetHostEntry("192.168.0.1"); // [msdn]
Console.WriteLine(host.HostName);

取得本機IP
static void Main(string[] args)
{
  // 顯示主機名
  string hostname = Dns.GetHostName();
  Console.WriteLine("hostname = {0}", hostname);

  // 顯示每個IP地址
  IPHostEntry hostent = Dns.GetHostByName(hostname); // 主機信息
  IPAddress[] addrs = hostent.AddressList; // IP地址數組
  foreach ( IPAddress ip in hostent.AddressList )
  {
    Console.WriteLine("Address: {0}", ip);
  } // foreach
}
 

VB, VBA

 

MD5加密

Posted In: , . By 卡西卡

 

Base64 編解碼

Posted In: , , , , . By 卡西卡

C#

VB, VBA - 中文不支援