2006年05月31日

リモートデスクトップ環境で、ローカルの資源にアクセスする方法

リモート接続するときに表示されるダイアログで、[オプション]ボタンを押し、「ローカルリソース」ページで
「リモート コンピュータにログオンしたときに自動的に接続するローカル デバイス」
の「ディスク ドライブ(&D)」をチェックすれば良いんですね。
これで、リモートデスクトップ環境で、自分のPCのドライブにアクセスできるようになります。
いままでは、リモートデスクトップでサーバー側の設定をちょこっと変更する程度の利用しかしてこなかったので、このオプションがあるのを最近知りました。
ほとんどの作業は、リモートデスクトップ環境で作業できますね。  

Posted by gushwell at 21:31Comments(0)TrackBack(0)

2006年05月30日

パケットキャプチャツール ngrep

■ ngrep の入手先
http://ngrep.sourceforge.net/

ngrepの実行には、wpcap.dll が必要。このDLLは、
http://winpcap.polito.it/ から、入手。
2つのソフトをインストールして、ngrep を起動...
でも、このツール、コマンドラインツールなので、使い方がわからない。

googleで検索して以下のサイトを見つける。
http://kinshachi.ddo.jp/kurage/html/MT/comp/archives/000611.html

なるほど、まず、

ngrep -L

で、デバイスの一覧を出し、使いたいデバイスを見つける。
僕の場合は、2番だ。

次に、httpの通信をキャプチャするコマンドをタイプする。

ngrep -W byline -d 2 port 80

-W byline は、見やすくするためのフォーマットを指定している。
-d で、先ほど見つけたデバイスの番号を指定。
port オプションで 80 を指定、これで、80 ポートのキャプチャが行える。  
Posted by gushwell at 22:24Comments(0)TrackBack(0)

2006年05月29日

BackgroundWorker

先日は、

>BackgroundWorker コンポーネントは、System.Threading 名前空間に代わると
>共に追加の機能を提供します。

とMSDN ドキュメントを引用しましたが、

BackgroundWorkerは、名前のとおり、GUIの裏(バックグラウンド)で処理をさせたいときに利用するためのコンポーネントであって、僕が今やろうとしているスレッドプールを利用した多重処理を実現させるには、ちょっと利用するのが難しそうです。

ただ、WindowsFormで、時間のかかる処理を走らせるにはとても手軽に使えて良いですね。プログレスバーの表示のための仕組みも組み込まれています。
BeginInvoke を使う必要もありません。

先日のコードだと、このあたりが分からないので、再度コードをアップします。

  BackgroundWorker backgroundWorker1 = new BackgroundWorker();
backgroundWorker1.DoWork += new DoWorkEventHandler(MyTask);
backgroundWorker1.RunWorkerCompleted += MyTaskCompleted;
backgroundWorker1.ProgressChanged +=
new ProgressChangedEventHandler(MyTaskProgressChanged);
// バックグラウンド処理の起動
backgroundWorker1.WorkerReportsProgress = true;

// プログレスバー表示処理
private void MyTaskProgressChanged(object sender,ProgressChangedEventArgs e) {
this.progressBar1.Value = e.ProgressPercentage;
}

// バックグラウンド処理
void MyTask(object sender, DoWorkEventArgs e) {
BackgroundWorker bw = (BackgroundWorker)sender;
...
for ( ... ) {
...
bw.ReportProgress(percentage);
}
}

// バックグラウンド処理が終了したときに呼び出される
void MyTaskCompleted(object sender, RunWorkerCompletedEventArgs e) {
...
}

※ ReportProgress には、ユーザデータを渡せるメソッドがオーバーロードされていますので、パーセント以外の情報も表示できます。  
Posted by gushwell at 23:07Comments(0)TrackBack(0)

2006年05月27日

BackgroundWorker コンポーネント

MSDN のドキュメントを読んでたら、こんな記述が目にとまった。

BackgroundWorker コンポーネントは、System.Threading 名前空間に代わると共に追加の機能を提供します。

ということは、BackgroundWorker コンポーネントを利用することが推奨されているってことかな。
たしかに、簡単です。

backgroundWorker1.DoWork += MyTask;
backgroundWorker1.RunWorkerCompleted += MyTaskCompleted;
backgroundWorker1.RunWorkerAsync();

private void MyTask(object sender, DoWorkEventArgs e) {
...
}

private void MyTaskCompleted(object sender,
RunWorkerCompletedEventArgs e) {
...
}

  
Posted by gushwell at 10:49Comments(0)TrackBack(0)

2006年05月25日

ユーザー 'NT AUTHORITY\\NETWORK SERVICE' はログインできませんでした

Windows Server 2003 では ASP.NET の実行時アカウントは "NT AUTHORITY\NETWORK SERVICE" のため、SQL Server へのアクセス権を "NT AUTHORITY\NETWORK SERVICE" アカウントへ許可する必要があります。

僕は、SQL Management Studio を使っちゃたけど。

http://www.microsoft.com/japan/msdn/vstudio/productinfo/tour/
によれば、

osql -E -Q "sp_grantlogin 'NT AUTHORITY\NETWORK SERVICE'"
osql -E -d データベース -Q "sp_grantdbaccess 'NT AUTHORITY\NETWORK SERVICE'"
osql -E -d データベース -Q "sp_addrolemember 'db_owner','NT AUTHORITY\NETWORK SERVICE'"

とコマンドを発行すればよい?


追記 2006/5/27
実際には、渋木さんがコメントしてくれたように、NETWORK SERVICE に全面的に SQL Server へのアクセスを許可するのはセキュリティ上問題あり。
僕が最終的にどう対応したかは、その結論が出た時点で、日記に公開します。って、かなり長いスパンの開発なので、結論でるのは、まだまだ先ですが。

  
Posted by gushwell at 19:20Comments(2)TrackBack(0)

2006年05月18日

xcopyコマンド

久しぶりに、xcopy コマンドを使った。

  xcopy *.* D:\temp /D:2006-4-1 /Y


と、指定した日付以降のファイルをコピーしようとしたのだけれど、実行すると、「無効なパラーメータ」という悲しいメッセージが...

  xcopy *.* D:\temp /D:06-4-1 /Y


と、年の部分を2桁で書かないとだめみたいだ。いったい、どこが間違いなのか、なかなかわからなかった。
いままでは、

  xcopy *.* D:\temp /D /Y


という記述しかしてこなかったからなー。  
Posted by gushwell at 23:15Comments(0)TrackBack(0)

2006年05月16日

Visual Studio Team Edition の UnitTest

今日、初めて Visual Studio Team Edition の Unit Testを使ってみたのですが、間違って Assert.Equals メソッドを使ってしまいました。
しばらく間違いに気がつきませんでした。危ない危ない...

正しくは、

Assert.AreEqual(e,a);

ね。

ウィザードがついているので、作成済みクラスのテスト単体テストがとても楽チンですね。
それに、IDEが自動作成する Accessor クラスを通して、private メンバーにもアクセスできるのもとても便利。(これは、賛否両論だろうけど)
ただ、ジェネリッククラスでは、この機能は使えないみたいです。  
Posted by gushwell at 21:25Comments(0)TrackBack(0)

2006年05月15日

Visual C# 2005 Express Edition のスタートページ

Visual C# 2005 Express Edition のスタートページの「MSDN Online 更新情報」は、いつになっても、2005年の情報しか表示されません。

これを最新のものを表示するようにするには、レジストリの値を変更する必要があります。

[HKEY_CURRENT_USER\Software\Microsoft\VCSExpress\8.0\StartPage]

の値を

NewsChannel=http://www.microsoft.com/japan/msdn/rss.xml

に設定し直します。

---
追記 2006/5/27

レジストリを直接いじらなくても、[ツール]−[オプション]の環境−スタートアップの設定を変更すれば、同様のことができます。
「すべての設定を表示(&A)」というチェックボックスがあるのをに気がつきませんでした。
Team Editionでは、オプションダイアログで変更していたのですが、てっきり、Express Editionは、オプションダイアログで変更できないのかと思っていました。
  
Posted by gushwell at 21:52Comments(2)TrackBack(0)