2012年11月6日火曜日

Skype4COM+ASP.NET+IIS6.0でSMS送信の際のIIS設定

今開発しているスマホサイトでSMS認証を追加することになりました。
色々サービスを検討しましたが、スカイプが月額料なしで1通8円前後ぐらいと
そこそこリーズナブルなので、スカイプを使うことにしました。

スカイプは「Skype4COM」というCOMコンポーネントを使うことで
スカイプクライアントをプログラムから使うことができます。
これをASP.NET(VB.NET)から使いますが、簡単にできてしまいますので
コードなどは割愛。
スカイプのデベロッパーサイトなどを参照してください。
COMのDLL自体は通常のスカイプクライアントをインストールすると
同時にインストール・登録されるようです。

ローカルでVisutalStudioの開発用WEBサーバでテストしていたときは何の問題も
なく、WebからSMSが送信できていました。
しかし、いざサーバのIISでやってみるとどうもうまくいかない。
タスクマネージャーを確認してみると、ログオンしているデスクトップ上の
クライアントとは別プロセスでスカイプが立ち上がってしまうようです。
ということで、いろいろやって解決した設定メモ。

各動作・実行・開発環境は以下です。

Windows 2003 Server sp2 (IIS 6.0)
.NET Framework 2.0
スカイプバージョン6
VisualStudio 2010

ローカルの開発Webだと問題なくSMS送信できていることが前提です。
以下の手順でスカイプからブラウザ経由でSMS送信できるようになりました。
なお、アカウントのユーザ権利をいじったりしますので、思わぬセキュリティの穴を
作ってしまうことも考えられます。
設定はよく検討してください。


1.サーバーのローカルでログオン
 僕の場合、Administratorでログオンしています。
 これ結構重要で、 リモートデスクトップでのログオンではダメです。
 必ずローカルでログオンします。

2.スカイプのインストール、ログイン(普通に)

3.IIS Admin Serviceのログオンタブで、デスクトップとの対話をサービスに許可をチェック
 world wide web~サービスもチェックしたほうがいいかも?
 いろいろやっててこれもチェック入ってますが、動かなければチェックで。

Clipboard01.gif

4.ワーカープロセスの識別IDで選択されているアカウントにローカルログオンを許可する権利を割り当て
 これにたどり着くのに2,3日かかりました。。
 通常はNETWORK SERVICEアカウントになってますが、ローカルセキュリティポリシーでこれに
 ローカルログオンを許可するの権利を割り当てます。

Clipboard02.gif

5.開発したASP.NETファイルをIISにコピー・設定など

6.ブラウザからテストします

これで、ローカルで実行しているスカイプクライアント経由でSMS送信されます。
僕はSMS送信しましたが、他の操作もできると思います。

難点は、サーバーの再起動などした場合、必ずローカルログオンしてないとスカイプから
送信できないということですね。
スカイプクライアントが実行されてない場合は実行するようにコードは書いてみたのですが、
バックグラウンドで実行されてしまうと上手くスカイプは動かないようです。
自動ログインとかがうまくいかないのかも?

あと、初めてCOMを使う場合、スカイプクライアントが連携を許可するか聞いてきます。
これを許可しておかないと実行されません。
これはインストール後、初回の実行時のみで以降は大丈夫です。

スカイプ側の仕様変更などで今後変更があるかもしれませんが、現状では
これで動いています。

IIS7以降だとどうなるかは今のところテストしてないです。
現状使ってるサーバが古いのですね。。
Hyper-Vがあるのでおそらくこのままこれを使い続けそうです。。

お役に立てれば幸いです。

2012年8月25日土曜日

ThinkPad T410s ヒートシンクにグリス塗り直し、その後

先日、ThinkPad T410sを分解して、CPU・GPU兼用のヒートシンク/ファンの
グリスを塗り直しました。
その後、同じ環境でしばらく使っての報告です。

まずは、どのような環境で使用していたかというと、

・ThinkPad ミニドックプラスシリーズ3
・ドックのDisplayPortに、Accell UltraAV(K087B-005B)を接続し、UltraAVの
 DVIポートのうちの2つにディスプレイを接続。それぞれ、1920x1200で使用。
・ドックのDVIポートにディスプレイを接続し、1920x1200で使用。
・USBにはキーボード、プリンタなどを接続

ということで、ディスプレイ3台構成で使用していました。
このT410sはスイッチャブルグラフィックモデルなので、ドックのDVIかDisplayPort
に2台までのディスプレイしか接続できないのですが、UltraAVを使用することで、
ThinkPad側から見ると、1920x1200のディスプレイと3840x1200のディスプレイの
2台を接続している形となり、裏技的に3台のディスプレイを使用することができます。

そもそもこの構成がGPUに負荷をかけているとも言えるのですが、仕様上のMAXあたりの
解像度でぎりぎりOKな構成だったと思います。


PCの使用用途としては、VisualStudioやSQL Serverを同時に使用してASP.NETの開発を
行ったり、GIMPでの画像作成などもしています。
他にエクセルやら会計処理やらしていますが、それほどPCに負荷がかかるようなこと
ではないと思います。

以前であれば部屋はエアコンをかけつつも、夏は15時前後になると暑くなるためウィンドウ
をたくさん開いて開発などをしていると画面の動きが悪くなったりしていました。
こうなるしきい値がどうやら、GPUの温度が100度を超えたあたりのようでした。
また、この時間以外や通常の使用でもGPU温度は80度を超えることは度々ありました。

それで、グリスを塗り直した後の結果ですが、通常のGPU温度は70度弱程度、気温が
上がる時間帯や画像に負荷がかかるようなことをしても、80度から85度程度までに
収まるようになりました!

グリスを塗り直した時に元々のグリスを見てみましたが、見た感じは劣化したようには
見えませんでしたが、GPUのグリスはシート状だったので、密着度合いが悪かったの
かもしれません。
また、そこそこ性能がよさそうなグリスを選択したので、熱伝導効率がよくなったという
のもあるかもしれませんね。

これ以外に、PCを設置している場所に熱がこもらないようUSBファンを設置しました。
それと、TPFanControlというソフトでファンの回転数制御設定を変えてみました。

CPUとGPUの銅のヒートシンクが一緒にCPUファンに接続されていますが、ファンの制御は
CPUの温度で行われています。

IMG_0377.JPG

なので、GPUだけ温度が上がってもファンの回転数は上がらないみたいです。
実際はつながているのでGPU温度が上がった場合、CPUの方にもある程度は熱が伝わる
ため回転数はある程度は上がる傾向にはあると思います。PCの処理的にもCPUが全く
使われずにGPUだけフル稼働ということはそんなにないとは思います。

とはいえ、今回の構成ではGPUの処理が重めだったので、GPUのみ温度が常に上がり気味
だったようです。
標準のファン制御ではCPU温度のみしか見ていないので、CPUの温度が落ちてもGPUはまだ
熱いということがあるので、CPUの温度を標準より下げ気味になるようなファン制御に
変更しました。
具体的には以下の設定で使っています。

Level=60 0
Level=65 2
Level=67 3
Level=70 5
Level=73 6
Level=76 7
Level=85 64

とりあえず、これでうまくいっています。

T410sの熱問題は、私の使い方の問題が確かに大きいのですが、性能をかなり使い切るような
使い方をする場合は気をつけなければいけないかもしれないですね。

今、ちょっとした事情で別の滞在先でT410sを久しぶりに単体で使っています。
単体だと当然、GPUの温度は全く問題ありません。CPUもです。
ただ、キーボードの左半分はかなり暖かく、左手に汗がじっとりする感じになりますね。
SSDを使用していますが、それでもそれなりの発熱があって、左パームレストも温かいです。

暑さと湿度でPCにとって特に過酷と言われる日本ですが、このブログが多少はお役に
立てれば幸いです。



2012年8月11日土曜日

ThinkPad T410s CPU&GPUにグリス塗り直し

ThinkPad T410s 2901-CTO(スイッチャブルグラフィックス)を普段使っています。
今年の春過ぎぐらいからたまに動作が不安定になっていました。
いろいろ調べたところ、GPUが100度を超えると動きが悪くなって、例えば、ウィンドウの
移動などが重たくなったり、全体的なパフォーマンスが落ちるようです。

それで、USBファンで外から冷やしたり、TPFanControlというソフトでCPUファンの制御を
したりしていたのですが、それでも暑い日にはエアコンをかけていてもGPUが100度を
超えることがたまにありました。
もっとエアコンをガンガンにかければ冷えるんですが、体にも悪いし、電気代もかなり
かかりそうです・・・

ということで、最終手段のヒートシンクを取り外してグリスを塗り直すことにしました。

ThinkPadはハードウェア保守マニュアルが公開されているので、自分で分解することが
できます。とはいえ、、システムボードまでバラすのはかなり大変です。。
しかし、これ以上の手段は思いつかないので思い切ってやってみました。

まずはグリスを近所のケーズデンキで購入。
ainexというメーカーのセラミックグリスをいうのを買いました。
熱伝導率5.1W/m・Kと書いてあります。
何種類かあったのですが、そこそこの感じのものを選びました。

さて、分解です。
バッテリーやDVDドライブ、HDDドライブなどはThinkPadなら簡単に外せます。
メモリ、Wifiモジュール、3Gモジュールなども簡単です。

IMG_0372.JPG

次にキーボードも取り外し。パームレストも外します。
意外と簡単。

IMG_0373.JPG

さらにキーボードが載っていたベゼルも取り外します。

IMG_0374.JPG

さらにLCDも外して、ついにシステムボードが取り外せます。

IMG_0376.JPG

ヒートシンクを外してみるとこのようになっています。

IMG_0377.JPG

上のチップがCPUで、下がGPUのNVIDIA NVS 3100Mのようです。
CPUはグリスのようですが、GPUはシート状のものでした。
グリスは結構はみ出してますし、、なんだか雑な感じですね。。
しかし、CPUの温度上昇はそれほどでもなく、きちんと冷えています。

GPUの方が問題で、ファンからの距離が遠く、銅の熱伝導体もCPUよりも細いので冷却が
いまいちなんでしょうか。。。
気になるのはシート状のグリスですね。綺麗に剥がれたのですが、これが逆に熱伝導効率が
良くない原因かもしれません。

古いグリスをすべてとって、買ってきたセラミックグリスを塗ります。
説明書に米粒大とか書いてあるのですが、、勘でつけます。
ちなみに保守マニュアルには0.2グラムを塗布、と書いていますが、、、
どうやって量ればいいのやら。。

まあ、適当にするしかありません。

今度は逆に取り付けていきます。
かなり組んでからコネクタの接続に気づいたり、、結構時間がかかりつつもなんとか
組みあがりました。

グリスの説明には、最高の性能を発揮するには付着後最低25時間ほどかかると書かれていますが、
とりあえず、動作チェック。
無事起動したので、接続などは問題ないようです。

肝心の温度ですが、前よりも下がっている感じがします!
CPU自体も何もしなくて70度前後あったのが、60度から65度前後で安定しています。
GPUもすぐに80度に到達していましたが、70度前後で安定、作業したり動画を見ても
前よりも安定感はありそうです。

本格的に仕事で使っていないので、実際効果があるのかどうかは来週以降でないとわかりませんが、
とりあえずは動作に支障がなかったのでよかったです。
猛暑日にどうなるかとかも気になりますが、とりあえずしばらく様子見です。