IIS 無法正常啟動:"發生未預期的錯誤0x8ffe2740"

最近發現到 ERP 程式編程環境,無法正常運作。
經查明之後,才得知是 IIS 的問題。
再細查 IIS 的環境,竟然是 IIS 沒有正常啟用:預設的網站(已停止)
接下來,重啟 IIS,即然發生運行錯誤:"發生未預期的錯誤0x8ffe2740"

Google 網路後,得知是 Port 80 相衝突所致。

本想是 Apache 網站影響,一查它是用 8080。
這真奇怪,還好網路先人眾人,他們先走在我的前面,並留下足跡:Skype 的設定
哦,真是晴天霹靂 !!

來吧,改下 Skype 設定,去除 以80和443 port為替代連入連線
終於,問題排除了。

image

image

空中聖經學院_摩西五經_賴建國博士 (播放清單)



手機、平板用戶,請點擊 YouTube 空中聖經學院_摩西五經_賴建國博士 (播放清單)

劉三講古_雅各書_劉曉亭牧師 (播放清單)



手機、平板用戶,請點擊 YouTube 劉三講古_雅各書_劉曉亭牧師 (播放清單)

空中聖經學院_羅馬書_黃子嘉老師 (播放清單)



手機、平板用戶,請點擊 YouTube 空中聖經學院_羅馬書_黃子嘉老師 (播放清單)

API 檢視員(DLL 函式宣告文字的取用)

你可以使用 Visual Basic 程式語言所提供的各項控制項、函式及指令,來完成你所需要的功能。
但是若要作系統操作、應用及控制,則顯得不足許多。這時就需要借助 DLL(Dynamic Link Library)動鍊結函式庫的功能來完成。

DLL 通稱為 Windows API。

使用DLL之前,要先對要引用到的函式名稱,加以宣告,之後才可以叫用該函式。
如:
Public Declare Sub GetSystemTime Lib "kernel32" Alias "GetSystemTime" (lpSystemTime As SYSTEMTIME)
Public Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long

只不過 Window API 函式的數量繁多,相對函式的宣告內容,是不可能被記起來。
為此,有安裝 Visual Basic 程式的環境,就有提供一工具程式:API 檢視員 (APILoad.exe)
image

image

image

image

宣告文字就可以在此複製,再貼到相關程式設計的環境中。

 

API查詢:
1.Windows API Reference for C#, VB.NET and VB6
http://www.webtropy.com/articles/Win32-API-DllImport-art9.asp

2.Microsoft Win32 to Microsoft .NET Framework API Map
http://msdn.microsoft.com/en-us/library/aa302340.aspx

雙引號 quotation marks 的使用及範例

雙引號 " (quotation marks) 在 C# 的表示方式,共有三種:

  • [ \" ]
  • [ '\u0022' ]
  • [ string strQuote = "\""; ]

使用時,任選一種使用即可。

下列是各種用法的範例:
// [ \" ]
result = Process.Start("\"C:\\Program Files\\7-Zip\\7z.exe\"", " a -t" + strZipType + " " + pZipName + " " + pFilename);

// [ '\u0022' ]
result = Process.Start('\u0022' + @"C:\Program Files\7-Zip\7z.exe" + '\u0022', " a -t" + strZipType + " " + pZipName + " " + pFileName);

// [ string strQuote = "\""; ]
// 先定義字串變數 Quote
result = Process.Start(strQuote + @"C:\Program Files\7-Zip\7z.exe" + strQuote , " a -t" + strZipType + " " + pZipName + " " + pFilename);

空中主日學_作時間的主人_劉志雄長老 (播放清單)



手機、平板用戶,請點擊 YouTube 空中主日學_作時間的主人_劉志雄長老 (播放清單)

空中聖經學院_傳道書_邵晨光博士 (播放清單)



手機、平板用戶,請點擊 YouTube 空中聖經學院_傳道書_邵晨光博士 (播放清單)

劉三講古_孩子真愛問_劉曉亭牧師 (播放清單)



手機、平板用戶,請點擊 YouTube 劉三講古_孩子真愛問_劉曉亭牧師 (播放清單)

認識 sp_MSforeachdb

sp_MSforeachdb 是 Microsoft SQL Server 沒有記錄在公開文件中的預儲程序。
在Master資料庫中的系統預儲程序中可以找到這個指令;透過這個指令可以輕鬆取得每一個資料庫的詳細資訊,也可透過這個指令執行資料庫的維護作業。
目前SQL Server 都是透過下列指令,來取得資料庫檔案的相關訊息。 

USE 資料庫名稱
GO
SELECT * FROM sysfiles
GO

其中 sysfiles 資料表:
--在SQL Server 2000中,sysfiles位於每一個資料庫的系統資料表格中
--在SQL Server 2005中,sysfiles位於每一個資料庫的檢視表中的系統檢視表
--在SQL Server 2008中,sysfiles位於每一個資料庫的檢視表中的系統檢視表

使用 master 資料庫,查詢相關的檔案資料訊息
image
如果需要列出資料庫伺服器中所有資料庫的檔案資料訊息,就必須在每個資料庫執行上列指令,而無法在單次查詢中就取得所有訊息,透過sp_MSforeachdb指令可以幫助你將每個資料的訊息彙總起來。

執行sp_MSforeachdb必須提供參數,若未提供錯誤訊息如下所示:
在SQL Server 2008R2中執行sp_MSforeachdb未提供參數的錯誤訊息
image

接著藉由sp_MSforeachdb指令,幫助我們執行指令SELECT * FROM sysfiles,完整指令如下:
--SQL2000、SQL2005、SQL2008、SQL2008R2適用
EXECsp_MSforeachdb 'USE [?];SELECT * FROM sysfiles;'
直接顯示彙總資料庫檔案 2008R2 執行結果
image
原本我們透過指令,只能對單一資料庫進行處理。
USE 資料庫名稱
GO
SELECT * FROM sysfiles
GO

現在 sp_MSforeachdb自動幫我們將個資料庫名稱取代完整指令中的問號,以迴圈的方式列出資料庫伺服器中,目前INSTANCE的所有資料庫檔案詳細資料。
EXEC sp_MSforeachdb 'USE [?];SELECT * FROM sysfiles;'

上列問號可寫成[?]或是?,例子如下:

--SQL2000、SQL2005、SQL2008、SQL2008R2適用
EXEC sp_MSforeachdb 'SELECT ''?'' AS ''DATABASENAME'''
GO

上例會列出此資料庫伺服器單一INSTANCE中的所有資料庫名稱。
image
執行下列語法可以將資料庫伺服器單一INSTANCE中的所有資料庫檔案訊息彙總到一個暫存資料表。
--SQL2000、SQL2005、SQL2008、SQL2008R2適用
CREATE TABLE #DBInfo ( 
 
fileid smallint,
  groupid smallint,
  size bigint,
  maxsize bigint,
  growth float,
  status int,
  perf int,
  name sysname,
  filename sysname );

EXEC sp_MSforeachdb 'USE [?];INSERT #DBInfo SELECT * FROM sysfiles;'
GO

SELECT * FROM #DBInfo
GO

DROP TABLE #DBInfo
GO
彙總資料庫檔案到暫存資料表-V2008R2
image
如有必要可以將上列的暫存資料表改為實體資料表,可用來設計自己的資料庫監控系統,用來觀察與紀錄資料庫的使用狀況。

以下列出sp_MSforeachdb常見的應用
1.列出資料庫實體名稱
--SQL2000、SQL2005、SQL2008、SQL2008R2適用
EXEC sp_MSforeachdb 'USE [?];EXEC sp_helpfile;'
GO
image


2.顯示資料庫使用的磁碟空間大小
--SQL2000、SQL2005、SQL2008、SQL2008R2適用
EXEC sp_MSforeachdb 'USE [?];EXEC sp_spaceused;'
GO
image


3.將資料庫的Page_VERIFT選項設定為CHECKSUM
--SQL2005、SQL2008、SQL2008R2適用
EXEC sp_MSforeachdb 'ALTER DATABASE ? SET PAGE_VERIFY CHECKSUM;'
GO

4. 顯示實體資料檔和記錄檔磁碟空間使用狀況
--SQL2000、SQL2005、SQL2008、SQL2008R2適用
EXEC sp_MSforeachdb 'USE ?;SELECT @@servername AS ''伺服器名稱'',DB_NAME() AS ''資料庫名稱'',[FileID] AS ''檔案代碼'',
[檔案大小(MB)] = CONVERT(DECIMAL(12,2),ROUND([size]/128.000,2)),
[空間使用大小(MB)] = CONVERT(DECIMAL(12,2),ROUND(fileproperty([name],''SpaceUsed'')/128.000,2)),
[剩餘空間大小MB] = CONVERT(DECIMAL(12,2),ROUND(([size]-fileproperty([name],''SpaceUsed''))/128.000,2)), [Name], [FileName],CONVERT(DATETIME,GetDate(),112) AS ''資料查詢時間''
FROM dbo.sysfiles;'
GO
image


5.顯示資料庫訊息
--SQL2000、SQL2005、SQL2008、SQL2008R2適用
EXEC sp_MSforeachdb 'USE ?; EXEC sp_helpdb ?;'
GO
image


6.列出所有資料庫名稱
--SQL2000、SQL2005、SQL2008、SQL2008R2適用
EXEC sp_MSforeachdb 'USE ?;PRINT DB_NAME();'
GO

--SQL2000、SQL2005、SQL2008、SQL2008R2適用
EXEC sp_MSforeachdb 'SELECT ''?'' AS ''DATABASENAME'''
GO

7.顯示每一個資料庫所有資料表名稱
--SQL2000適用
EXEC sp_MSforeachdb 'USE ?;SELECT @@SERVERNAME AS ''ServerName'',
                           DB_NAME() AS ''DbName'' ,

                           name AS ''TableName''
 
                           FROM sysobjects

                           WHERE (xtype = ''U'')'

GO
image
--SQL2005、SQL2008、SQL2008R2適用
EXEC sp_MSforeachdb 'USE ?;SELECT @@SERVERNAME + ''.'' +
                                  DB_NAME() + ''.'' +
                                  SCHEMA_NAME(uid) + ''.'' +
                                  name AS ''TableName''
                           FROM sysobjects
                           WHERE (xtype = ''U'')'
GO

--SQL2005、SQL2008、SQL2008R2適用
EXEC sp_MSforeachdb 'USE ?;SELECT @@SERVERNAME + ''.'' +
                                  Table_CATALOG + ''.'' +
                                  TABLE_SCHEMA + ''.'' +
                                  TABLE_NAME AS ''TableName''
                           FROM information_schema.tables;'
GO

--SQL2005、SQL2008、SQL2008R2適用
EXEC sp_MSforeachdb 'USE ?;SELECT @@SERVERNAME + ''.'' +
                                  DB_NAME() + ''.'' +
                                  SCHEMA_NAME(schema_id) + ''.'' +
                                  name AS ''TableName''
                          FROM sys.tables;'
GO
image


8.檢查資料庫
--SQL2000、SQL2005、SQL2008、SQL2008R2適用
EXEC sp_MSforeachdb 'DBCC CHECKDB(?);'
GO
image


9.對每一個資料庫執行 DBCC UPDATEUSAGE 作業
--SQL2000、SQL2005、SQL2008、SQL2008R2適用
USE master
GO
EXEC sp_MSforeachdb @command1="print '?' DBCC UPDATEUSAGE (?)"
GO

參考資源:

SQL Server 與 CLR 的整合

SQL Server 的設定環境中,是默認不啟用 CLR 功能,如此 user assemblies 的功能,就不能被使用在 SQL Server。

若是在使用,則必須激發 clr enabled。

啟用 CLR 的步驟如下:
sp_configure 'show advanced options',1
GO
reconfigure
GO
sp_configure 'clr enabled',1
GO
reconfigure
GO

insufficient system memory in resource pool 'internal'

使用 SQL 2008 環境,執行 Jobs 作業,卻發現到有些 Jobs 記錄有回報錯誤,經查明後,得知有錯誤訊息:
Executed as user: TPDB01\sqladmin. There is insufficient system memory in resource pool 'internal' to run this query.

這個錯誤只要造成的原因,是系統的"策略"(Policy) 設定不正確所致。

以下設定步驟,可供參考。

  • 在“開始/執行”中輸入“gpedit.msc”
    clip_image002
  • 找到 “鎖定記憶體分頁 Lock pages in memory”, 并設置其 “內容”
    image
  • 添加 使用者
    image
  • 找到sqladmin, 點擊 “確定”
    image
    image
  • 點擊 “確定” 繼續
    image
  • 點擊 “確定” 完成設置
    image
  • 結果如下圖
    image

如何下載 HTML5 的影音格式檔案?(二)

前文,曾介紹安裝 HTML5 下載工具程式:連上 AimerSoft 網站,下載 YouTube Downloader
該程式使用起來,還算方便;也可以設定下載檔案的儲存位置。
不過,目前有些小缺點:下載後的檔案名稱,有時會變少,尤其是中文檔案的情形。

現在介紹另一個工具,讀者可以自行斟酌要使用那種;筆者只能說上述的小缺失,新介紹的工具就不會存在。

  1. 連上 Chrome Web Store - HTML5 Video for YouTube
  2. 安裝 HTML5 Video for YouTube™

 

當工具安裝好後,連上影音網站後,可以看到影音畫面的左下方多的一個灰色按鈕。

image

點下按鈕,展開工具列,就可以選定存檔類型、播放速度等選項;
最後按下 下載 按鈕,存檔了。

image

如何下載 HTML5 的影音格式檔案?

早先寫的一篇短文,敘述"為什麼 Chrome Youtube Downloader 運作不正常,無法下載影片?"原由。
主要問題所在,是影音檔案的處理方式改變了:Flash => HTML5

現在,來說明要如何下載 HTML5 的影音檔案。

首先,在瀏覽器中搜尋"chrome youtube downloader html5",就可以看到不少相關的資料。自己選擇你想要安裝的工具程式來使用。
或是,依下列步驟安裝

  1. 連上 AimerSoft 網站,下載 YouTube Downloader
  2. 安裝 aimer-youtube-downloader_full1602.exe

安裝後,只要連上網路看到的影音是 HTML5 格式,這時畫面上就會多出一個按鈕,點選按鈕即可下載。

image

空中主日學_羅馬書_康來昌牧師 (播放清單)



手機、平板用戶,請點擊 YouTube 空中主日學_羅馬書_康來昌牧師 (播放清單)

天父的慈心大愛_潘唐娜 (播放清單)



手機、平板用戶,請點擊 YouTube 天父的慈心大愛_潘唐娜 (播放清單)

青年聖經講座 - 但以理書_陳希曾博士 (播放清單)



手機、平板用戶,請點擊 YouTube 青年聖經講座 - 但以理書_陳希曾博士 (播放清單)

為什麼 Chrome Youtube Downloader 運作不正常,無法下載影片?

使用 Google Chrome 瀏覽器,並安裝可以下載 YouTube 影片的工具程式。image

http://mandel-design.xf.cz/Chrome-Youtube-Downloader/

 image

原本下載影音的功能,都很正常,最近即然發現有的影片可以下載,有些則無法下載,
不知其原由是什麼 !!

經查對影片屬性後,才發現到最近已有 HTML5 的影片格式,所以下載功能才會失效。
看樣子,要等下載工具的新版本才行了 !!

image

image

Single-User / Multi-User 切換

使用 SQL 2008 環境,想到將資料庫設定為 Single User 模式,反之,要設為多人使用 的 Multi User 模式,該如何處理?

設定為 Single User
USE master;
GO
ALTER DATABASE DBWorks2012
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO

設定為 Multi User
USE master;
GO
ALTER DATABASE DBWorks2012
SET MULTI_USER;
GO

另外,也可以藉由下列指令,來設定 唯讀/讀寫 (READ_WRITE)
ALTER DATABASE DBWorks2012 
SET READ_ONLY; 
GO