2009年12月18日 星期五

SQL Server 在 Windows 2008 R2 連線設定(防火牆)

每次灌好新的 SQL Server 常會碰到連不上的情況

錯誤訊息如下

建立連接至 SQL Server 時,發生網路相關或執行個體特定的錯誤。找不到或無法存取伺服器。確認執行個名稱是否正確,以及 SQL Server 是否設定為允許遠端連線。 (provider: SQL 網路介面, error: 26 - 搜尋指定的伺服器/執行個體時發生錯誤) (.Net SqlClient Data Provider)

按以下步驟處理即可

1.請確認已經透過位於「Microsoft SQL Server 2008」、「組態工具」中的「SQL Server 組態管理員」,將 SQL Server 網路組態中的 TCP/IP 通訊協定予以啟用
2.開啟 SQL Server Management Studio 在「物件總管」窗格中,於要設定的執行個體上,按下滑鼠右鍵,選擇「Facet」指令
3.此時會開啟「檢視 Facet」對話方塊,從右側「Facet(F)」下拉式清單中,選擇「伺服器組態」項目
4. 將「Facet 屬性」中的「RemoteAccessEnabled」設定為 True

以上內容轉載microsoft technet

如果還是有無法連線的情況,請注意防火牆設定,

可以試試看把防火牆關掉,其他台電腦應該就可以連了,這表示防火牆還需要再做設定

開始→控制台→檢查防火牆狀態


允許程式或功能通過 windows 防火牆,如要使用更多更細部的設定可以利用進階設定。


允許其他程式


瀏覽我們要允許的程式


因為我們要允許的程式,是一個windows 服務,所以我們透過以下步驟來了解該服務的執行檔在哪個位置

按開始,鍵入services.msc直接開啟服務管理


我們這次要允許的就是以下兩個服務,缺一不可,對他們使用右鍵→內容


紅框處就是他們執行檔的位置,我的這兩個服務在不同的資料夾





回到瀏覽我們要允許的程式


選擇sqlbrowser.exe


選擇sqlservr.exe


設定完成,可以用其他電腦測試SQL Server 的連線囉


-------------------

參考這篇後有可能會發現netsh firewall這個指令已經不適用了
現在已經改成 netsh advfirewall firewall

對照修改法可參考以下連結

各服務所對應的port

------------------
可用指令設定(已確認適用 2008 R2)

直接在cmd輸入即可進行設定

本次的防火牆設定也可以執行以下兩段

netsh advfirewall firewall add rule name="sqlservr" dir=in action=allow program="C:\Program Files\Microsoft SQL Server\MSSQL10.AFCSQLSERVER\MSSQL\Binn\sqlservr.exe" enable=yes

netsh advfirewall firewall add rule name="sqlbrowser" dir=in action=allow program="C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe" enable=yes

也就是命令提示字元︰開始→鍵入cmd.exe後執行

如需要開port可以使用以下指令
netsh advfirewall firewall add rule name="SQLServer" dir=in action=allow protocol=TCP localport=1433

netsh advfirewall firewall add rule name="SQL Admin Connection" dir=in action=allow protocol=TCP localport=1434

netsh advfirewall firewall add rule name="SQL Service Broker" dir=in action=allow protocol=TCP localport=4022

netsh advfirewall firewall add rule name="SQL Debugger/RPC" dir=in action=allow protocol=TCP localport=135

netsh advfirewall firewall add rule name="Analysis Services" dir=in action=allow protocol=TCP localport=2383

netsh advfirewall firewall add rule name="SQL Browser" dir=in action=allow protocol=TCP localport=2382

允許各種服務
netsh advfirewall firewall add rule name="fdlauncher" dir=in action=allow program="C:\Program Files\Microsoft SQL Server\MSSQL10.AFCSQLSERVER\MSSQL\Binn\fdlauncher.exe" enable=yes

netsh advfirewall firewall add rule name="sqlservr" dir=in action=allow program="C:\Program Files\Microsoft SQL Server\MSSQL10.AFCSQLSERVER\MSSQL\Binn\sqlservr.exe" enable=yes

netsh advfirewall firewall add rule name="SQLAGENT" dir=in action=allow program="C:\Program Files\Microsoft SQL Server\MSSQL10.AFCSQLSERVER\MSSQL\Binn\SQLAGENT.EXE" enable=yes

netsh advfirewall firewall add rule name="sqlbrowser" dir=in action=allow program="C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe" enable=yes

netsh advfirewall firewall add rule name="sqlwriter" dir=in action=allow program="C:\Program Files\Microsoft SQL Server\90\Shared\sqlwriter.exe" enable=yes

-------------------
以下僅供參考,可略過不看

在測試的過程中

發現一個奇怪的現象

假設A是SERVER,B是CLIENT

現在B停留再SQL Server Management Studio(SSMS)

A的防火牆設定,先把對B的IP的連線開啟(允許192.168.2.69)的任何連線

此時B已經可以連線到A的SQL SERVER了

再將A的防火牆,把剛剛B的IP連線規則關閉,再允許 SQL SERVER 程式通過防火牆

注意,這時候,B的 SSMS 仍然可以連線

但若關掉對 SQL SERVER程式允許,會馬上影響B的SQL的連線
或是將B的 SSMS 重開後,就無法連線了

感覺 SSMS 暫存了一開始的B電腦IP連線規則,關掉SSMS後就消失

2009年12月16日 星期三

Google Doc 使用心得

線上簡易版的office

其中我最關注的是form這個檔案類型,可以製作問卷,並呈現在excel中

可惜無法確保問卷的內容有效性,也就是說可以填寫假資料,也可以重複填寫

但是就一個民眾工具來說,真的是很方便的功能

很厲害

word 切換英文大小寫

shift + f3 可以切換全大寫、字首大寫、全小寫

就是常用→字形→Aa的圖示

2009年12月10日 星期四

UAC相關設定

如果在UAC的設定上有什麼困擾的,可以參考這個官方說明

http://technet.microsoft.com/zh-tw/library/cc772207(WS.10).aspx

使用secpol.msc便可以進行設定

可以設定成擁有管理權限的帳號關閉UAC,但一般帳號仍啟用UAC

2009年12月7日 星期一

Oracle SQL Developer 的bug,鍵盤delete、backspace、貼上無效、

Oracle 版本是 10g

這是個鳥鳥的bug,狀況發生時,鍵盤的delete、backspace都不能用,也不能貼上

只要照工具列上面這樣設定完即可修復,鍵盤真的比較方便
Tools -> Preferences -> Accelerators -> Load Preset -> Default -> OK

參考文章如下
http://decoding.wordpress.com/2008/01/09/oracle-sql-developer-problem-backspace-delete-button-not-working-quick-fix/

2009年11月16日 星期一

開發環境最好還是照順序來

iis→vs2008→sql

我整個反過來裝 sql→vs2008→iis

已經遇到了iis要重新註冊asp.net(先裝iis在裝vs2008(其實就是.net)就不會有此問題)

vs2008 元件載入失敗,開發語法無高亮(因為先灌了sql,預設的vs2005影響到vs2008了)

http://support.microsoft.com/kb/916900/en-us

嘔~~

關於開發語法無高亮的問題,請搜尋「visual studio 高亮」,可以搜尋到demo的解決方案

如果是組件無法讀取(package load failure)的問題,直接上網搜尋「package load failure」,不過最好...先用內建的open/project來開啟sln看看

2009年10月25日 星期日

使用者需求

開發案子最重要的,我想就是使用者需求了

在案子啟動以前,我們必須跟使用者建立起共識

以免到了後期,因為做出來的東西,不符合使用者的需求而修修改改

最近遇到的一個案例,是使用者代表委託製作新的系統

但是卻在新系統完工前夕,經常聽到使用者「以前的系統...bla bla」

讓人有一種「你幹嘛不會去用舊系統就好了」的感覺

我想,使用者是希望我們能夠在就系統上面,進行補強

當初應該以該使用者的需求基礎上進行開發,即便他使用的是超鳥的IE6


這樣才不會在完工前夕,不斷的被要求修改,甚至被批評版面做得很差...某功能很陽春等等

我不懂該怎麼樣才能讓使用者「滿意」

為了讓他覺得「還可以」就已經讓我們拼死拼活了...


前期負責使用者需求溝通的人到底在搞些什麼阿??

2009年10月1日 星期四

注重SOP,原則,細節

1.更新前一律備份預防萬一

2.不要遷就別人而縮短自己的工作時間,降低工作效率。時間一定要進行評估

3.一律在測試機完成實作,才到正式機更新。不要再到正式機進行程式碼編寫

心情真是超低落

「挖坑給自己跳」
「時間都不用評估嗎??」

2009年9月26日 星期六

Creating Model Classes with LINQ to SQL

課程連結

第三節,Repository

使用Repository能幫助我們建立更複雜的程式,將所有的連線處理,存放在Repository
日後只要修改Repository,即可變更整個controller裡面的連線處理

試想如果不使用Repository,controller裡的連線要一個一個改到什麼時候?
同時也會影響單元測試

2009年9月22日 星期二

如何開啟HyperV遠端管理權限

為了要在我自己的電腦,管理其他HyperV伺服器,設定權限上面稍微有些複雜

工具中文介紹版-內附英文作者的小程式,可直接設定

貨真價實英文版-一步一步做,帶圖又詳細

2009年9月17日 星期四

crcdisk.sys系統死當的解決方法(未驗證)

http://blog.yam.com/geniusx/article/4887096

根據這個部落格的描述

先安裝vista,等你到達了會當掉的地方後,用光碟重開機,選擇Repair,選擇Commnad Prompt,接下來輸入以下指令:

c: [enter]
cd \windows\system32\drivers [enter]
rename pcmcia.sys [enter]
cd \windows\system32\driverstore\filerepository\pcmcia.inf_539d55e
rename pcmcia.inf_539d553e pcmcia.inf_539d553eold

第一段改檔案,第二段改資料夾名稱!

不一定是539d553,也有可能是其他的

---------不一定要使用Commnad Prompt分隔線---------
至於要怎麼修改檔案,可以讓他先當次要硬碟,使用別顆硬碟開機,開機之後在修改上述檔案跟資料夾

如果有權限的問題造成存取被拒,可以參考以下步驟

1. 關閉「簡易檔案共用」:內容才看的到「安全性」標籤
a. 按一下 [開始],再按一下 [我的電腦]。
b. 在 [工具] 功能表上按一下 [資料夾選項],然後按一下 [檢視] 索引標籤。
c. 在 [進階設定] 下,按一下以清除 [使用簡易檔案共用 (建議使用)] 核取方塊,然後按一下 [確定]。

2.用滑鼠右鍵按一下您想要取得擁有權的資料夾,然後按一下 [內容]。
3.按一下 [安全性] 索引標籤,然後按一下 [安全性] 訊息 (如果顯示的話) 上的 [確定]。
4.按一下 [進階],然後按一下 [擁有者] 索引標籤。
5.在 [名稱] 清單中,按一下您的使用者名稱;如果您是以系統管理員的身分登入電腦,請按一下 [Administrator],否則,請按 [Administrator 群組](也就是你一般登錄的名稱那一個)。
如果您想要取得該資料夾內容的擁有權,請按一下以選取 [取代子容器與物件的擁有者] 核取方塊。
6.按一下 [確定]。

2009年9月7日 星期一

word 當機、無法複製、無法使用滑鼠

今天同事遇到一個問題

word居然離奇的毛病,開啟單一檔案的時侯完全正常

想要點點兩下其他文件,開啟來複製,卻發生無法開啟的狀況,開了貌似沒反應。

如果直接執行程式及裡面的word(空白檔案→開啟舊檔),是可以開啟兩個檔案的。

但是會發生無法複製、某些區域滑鼠選擇不能,真的是超鳥的狀況

勉強使用鍵盤操作,但是還是很不順!

上網查了一下,關鍵字是「word 2007 滑鼠」

原來是因為自動更新的時候更新了增益集

只要到word選項→增益集→執行→停用所有增益集,就正常了

只是目前還無法確定是哪個增益集的問題,還得一個一個試。

參考網址如下︰

http://social.technet.microsoft.com/Forums/zh-TW/officezhcht/thread/29fad429-035a-4a8f-87b8-4e43394ef584

2009年9月3日 星期四

ROYTAL TS 的連線問題

剛剛使用roytal ts 去連線某機台的時候

發生了疑似windows error code 7024的錯誤

ERROR_CTX_WINSTATION_BUSY

不過用的是中文版的os,看到的錯誤訊息也是中文版
「終端機器忙線中,因為正在忙著處理一個連線。」(以印象打的,不完全是這段字)


試了30多分鐘,發現把 console 連線的選項拿掉就正常了。console connect

勇錫說「大概是console連線被擋掉了吧!我亂說的...」

要完全明白為什麼,應該還需要一點時間研究。

目前只知道跟console connect 連線有關就對了

應該在多了解 console connect 一些才有機會了解原因。

2009年9月2日 星期三

如果要舉辦推薦活動...

網路行銷活動中,如果辦了推薦類型的活動(我推薦你,你來加入,我賺獎品)

要嘛,就是不要審核,大家來比洗帳號、洗推薦、洗分數的功力

如果要審核,請先制定好審核機制,同時限制玩家每日推薦的數量。



如果要審核,又不限制數量,又沒有審核制度,那...就等著累死吧!

沒有想清楚前,請勿輕易嘗試!

2009年8月31日 星期一

用物件導向宣告一個人

剛剛在拉屎的時候很無聊的想到的...

人的外觀有,頭、手、身體、腳,這些是物件

手這個物件裡面還有上臂、手肘、手腕、手掌、手指

手指這個物件還有指甲

定義一個「出拳」的方法就是

手.手掌.握拳
手.揮

定義「看」--眼睛.看

定義「走」

左腳.走(總是以右腳起步)
右腳.走(要等左腳走完才能走)

無聊的時候可以想想還有啥!

2009年8月28日 星期五

類別與物件

以下問題

1.請問「類別」可不可以包含「物件」?
可--類別中的方法,裡面可以使用物件

2.請問「物件」可不可以包含「類別」?
不可

3.請問「類別」可不可以包含「類別」?


4.請問「物件」可不可以包含「物件」?


5.請問「物件」可不可以當成資料傳遞?


6.請問「類別」可不可以當成資料傳遞?
不可

7.在 .NET 的世界,請問「物件」可以用什麼型態存在或用什麼格式傳遞?(可任意回答一種以上)


8.在 .NET 的世界,請問「類別」可以用什麼型態存在或用什麼格式傳遞?(可任意回答一種以上)


9.在 .NET 的世界,程式在執行的時候,「類別」可不可以被動態修改?
不可-因為類別是靜態的

10.如果有兩台主機要互相傳遞資料,他們傳遞的是「類別」還是「物件」?
物件

11.請問「物件」是否包含「方法(Method)」?
包涵方法的是類別,類別中記載著方法

12.如果「物件」從 A 電腦傳遞到 B 電腦時,若該物件要執行「方法」還需不需要有「類別」存在?
需要!不燃沒辦法參考,除非B電腦到A電腦找方法。

2009年8月14日 星期五

c#快速搜尋資料夾中的各檔案(含子資料夾)

利用 DirectoryInfo 可以快速的搜尋資料夾裡面(包含子資料夾)各種類型的檔案

string strPath = @"D:\\cisa_fileedu\\Solutions";

DirectoryInfo di = new DirectoryInfo(strPath);
foreach (FileInfo fileName in di.GetFiles("*.*", SearchOption.AllDirectories))
{
}

2009年8月11日 星期二

如何檢視rss已經失效

今天因為工作的關係突然想到這個問題

但是一般的reder並沒有幫使用者做這樣的判斷

使用者只能再很久沒有收到訊息的時候,去檢視到底為什麼收不到

到底該怎麼辦???

Will一語驚醒夢中人,寫個程式將所有的RSS網址Request一遍

回應不是200基本上就是掛了...

真是簡單阿...

2009年7月1日 星期三

Log Parser,分析IIS log的好用工具

學生時代應該不太可能得知這款工具,文獻並不多

簡單說可以用sql的概念來撈取log中的資料,只要會SQL,這就不難,只是語法上需要再研究研究

在多次使用後發現,如果資料來源的log過大,那查詢一次可能會花去蠻久的時間

跑一次大概要3-5分鐘,如果同一份 log 需要作多次的 SQL 查詢,那還是把資料丟進SQL SERVER 跑比較快

基本的介紹可以參考Will的部落格

Log Parser (分析多種 Log 格式的超強工具)

Visual Log Parser ( 視覺化操作 LP 語法 )
這個工具好用的地方在於,有很多說明文件可以看,不過是英文的...


其他補充資料
讓Log Parser來幫你分析LOG
這邊有說明該怎麼把IIS Log 存出來



以下是使用 Visual Log Parser 寫出來的 SQL語法,有空再補圖

SELECT TO_TIMESTAMP(date,time) as Datetime,*
\\TO_TIMESTAMP將日期與時間合併

FROM C:\Windows\System32\LogFiles\ex090623.log
\\取得LOG檔案的位置,可以使用*.LOG

where Datetime > TIMESTAMP('2009-06-03 15:00:00', 'yyyy-MM-dd hh:mm:ss')
and Datetime < TIMESTAMP('2009-06-03 17:00:00', 'yyyy-MM-dd hh:mm:ss')
\\只查兩個小時內的紀錄

order by datetime
\\排序

2009年6月30日 星期二

hyper-v 基礎的教學

如果已經裝好了win2008,就可以來玩玩看hyper-v囉!

前言
一台虛擬機的結構,分成VHD(虛擬硬碟)跟虛擬機器的XML設定檔
製作一台新的虛擬機,第一步就是先製作VHD,再進行虛擬機器的XML設定檔的設置
每一台虛擬機,都需要一個VHD,兩台虛擬機不可共用同一個VHD,但是可以透過繼承的方式,繼承同一個VHD
BASE才有辦法進行硬碟的擴充,差異磁碟基本上都是繼承base的設定。

1.新增 → 硬碟 → 下一步 → 虛擬硬碟分成三種類型,我們通常使用差異磁碟 → 決定新差異磁碟的名稱與位置 → 選擇要繼承的虛擬硬碟(BASE) → 完成

2.新增 → 虛擬機器 → 下一步 → 決定虛擬機器的名稱,注意不可重複 → 指派記憶體
→ 設定網路,這個部份可以再另外設定網路類型,一般選擇可對外的Ext Network → 使用現有的虛擬硬碟(剛剛建立的) → 完成,勾選建立虛擬機器並加以啟動

3.機器開啟後(使用ctrl+alt+end登入),一開始會碰上訊息"網路上有相同名稱",
可以用工具的 NewSID (自己找吧,幫電腦換名字的工具)建立一個新的 SID 以及新的名稱
使用的設定基本上就是下一步即可,之後會開始重新更新電腦的SID,更新完成後就完成了新增虛擬機器的作業

接下來就是網路上的設置了。

2009年6月29日 星期一

Windows Service,服務的製作

一般在學校的學生應該不會碰到這類的實作,光是學寫程式的方法就來不及了

我想學生們應該很缺少對於整個VS的介紹...題外話

要寫出Windows Service其實很簡單,近似於Console Mode的寫法

差別在於Windows Service,有著 Start(啟動) 跟 Stop(結束)



簡單來說,基本做法就是將 Console Mode 的 main 貼近 service 的 main

並且將 Console Mode 各種Method(方法),照樣貼近 service 就完成了。






進一步牽扯到,service該怎麼進行偵錯(可以用console mode)以及安裝service的屬性

相關的技巧可以參考Will的部落格


使用C#啟動、停止服務

在服務中,自行停止服務

安裝服務的方法

偵錯技巧

偵測資料夾變更、同步、FileSystemWatcher

交談過後才知道,這個東西應該是在二技的時候就有介紹過了

只是當時沒有放在心上,也就沒有在記憶裡了

FileSystemWatcher在MSDN裡面就有詳盡的說明,也可以參考以下連結進行實作

http://www.dotblogs.com.tw/dotnetfactory/archive/2008/04/10/2780.aspx

本來這個類別是用在監控資料夾的變更,指定的資料夾若是變更,便可以發出事件

進一步我們可以針對資料夾的變更,讓其進行對別的資料夾的同步

包含使用UNC路徑的方式同步別台電腦的資料夾

這個實作包含了各種資料夾的控制,包括檔案、資料夾的複製、刪除、更名等

最後可以將這個Console Mode的程式,寫成windows service,讓它常駐