2009-08-11 6 views
2

私はExchangeとのやりとりが必要な.netアプリケーション、特にExchangeオブジェクトの作成に取り組んでいます。そのWebベースのアプリケーションですが、バックエンドはExchangeサーバー上のサービスとして実行されます。PowerShellにボトルネックがあります

私はExchangeと対話する最善の方法を決定しようとしています。私の最初の考えは、操作のための何らかのサービスキューイングシステムを備えたPowerShellを使用することでしたが、PowerShellの操作によっては時間がかかるため、アプリケーションの速度が遅くなることが懸念されます。私はこれを行うためにHMCを使うほうが良いでしょうか、それとも本質的にHMCがとにかく崩壊したのでしょうか?

Exchangeと対話するための他のオプションがない限り、Exchange Webサービスでは上位レベルのオブジェクトを作成することはできません。 PowerShellを使用することで、大きなボトルネックとなることがない限り、あるいはこれを簡単にするためのパターンや代替案が非常に高く評価される限り、私は完全に満足しています。

+1

私が持っているものは、あなたが何を記述しているかと非常に似ています。私はADSI(System.Directory名前空間)を使用して、Exchange以外のすべての操作を行い、エントリを有効にします。今日、私のソリューションはExchange 2003のようにCDOEXMを使用しており、Exchangeの部分は遅いです。私はPowerShellを使ってルーチンをアップグレードしていますが、それはもっと遅いとは思いません。私はそれがPowershellではなく遅いExchangeだと言います。 –

答えて

4

PowerShellはボトルネックになる可能性があります。間違ったイディオムを使用します。実行時間を取得するMeasure-Commandを使用して、これらの3つのコードサンプル

$ii=0; 0..10000 | % { $ii++ }; $ii 
for ($ii=0;$ii -lt 10001;$ii++) { $sum+=$ii } ; $sum 
0..10000 | measure-object -Sum 

を比較し、最初の350msの、第74、および第三の28msを要します。

一般的に、PowerShellの多くのオブジェクトは何かを行う最も速い方法ではありませんが、Exchangeの場合のようにスクリプトが主にADとCOM呼び出しの場合、制限要因はPowerShellではありません。

関連する問題