特集
次世代XML Webサービスを試す Part 1
[改訂版]

1.WSEのインストール

インフォテリア株式会社
吉松 史彰
2003/01/10

Page1 Page2 Page3 Page4 Page5 Page6

WSEのインストール

 WSEの実体は.NET Framework 1.0(Visual Studio .NET 2002)上で動作するアセンブリである。米国MSDN Onlineのダウンロード・ページからWindows Installerのmsiファイルをダウンロードすることができる。また、このページにはWSEの使い方を記した4本の記事へのリンクも張られているので、ぜひ参考にしてほしい。

 WSEをインストールするには、ダウンロードしたmsiファイルをダブルクリックして、お決まりのインストール手順を踏むだけだ(すでに.NET Framework 1.1 ベータ版が公開されているが、WSEの動作は保証されていない)。

Web Services Enhancements(WSE)のインストーラ起動時の画面
Web Services Enhancements 1.0 for Microsoft .NET.msi(2.7Mbytes)をダウンロードして、起動したところ。

 インストールする内容を選択する画面では[Complete]を選択して、取りあえずすべての内容物をインストールしてしまおう。

セットアップの種類を選択するインストール画面
ここでは取りあえず「Complete」を選択しておけばよい。これによりランタイム、ドキュメント、サンプルなど、すべてがインストールされる。

 インストールが完了すると、スタートメニューにショートカットが4つあるプログラムフォルダが作成され、%programfiles%フォルダ(通常はC:\Program Files)の下にMicrosoft WSEというフォルダができる。フォルダのサイズは3Mbytes弱だが、そのほとんどはヘルプ・ファイルで占められている。%programfiles%\Microsoft WSEフォルダの中で最も重要なファイルは、いうまでもなくMicrosoft.Web.Services.dllファイルである。このファイルの本性は、

Microsoft.Web.Services, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

という名前のシングル・ファイル・アセンブリであり、Microsoft.Web.Servicesなどの名前空間に属するクラス群が含まれているライブラリである。また、このアセンブリはインストーラによってグローバル・アセンブリ・キャッシュに登録される。

WSEがインストールされた.NET Framework

 WSEのインストーラは、

  %systemroot%
    \Microsoft.NET
      \Framework
        \v1.0.3705
          \CONFIG フォルダ

にあるmachine.configファイルに1種類のエントリを追加する作業も行う。そのエントリは、configuration要素の直下に追加される。

WSEのインストーラにより、machine.configファイルに追加されるエントリ(IEで表示)

 このエントリによって何をしようとしているのかについては、WSEのインストール・フォルダにあるWSE.configファイルにコメントとして書かれている。内容は、要するに次のコードによって返されるクラスを変化させるということだ。

class App {
  static void Main() {
    object o = System.Security.Cryptography.CryptoConfig.CreateFromName("SHA1");
    System.Console.WriteLine(o.GetType());
    object o2 = System.Security.Cryptography.SHA1.Create();
    System.Console.WriteLine(o2.GetType());
  }
}
WSEインストーラにより置き換えられる実装を確認するためのサンプル・プログラム

 WSEをインストールする前(つまりmachine.configが書き換わる前)にこのコードを実行すると、結果は次のようになる。

% App.exe
System.Security.Cryptography.SHA1CryptoServiceProvider
System.Security.Cryptography.SHA1CryptoServiceProvider

 これを、WSEのインストール後に実行すると、結果は次のようになる。

% App.exe
System.Security.Cryptography.SHA1Managed
System.Security.Cryptography.SHA1Managed

 System.Security.Cryptography.SHA1CryptoServiceProviderクラスも、System.Security.Cryptography.SHA1Managedクラスも、ともにmscorlibアセンブリに含まれるクラスだ。違いは、SHA1CryptoServiceProviderの方はP/Invokeサービスを利用して、Windowsが持つCryptoAPIを利用してSHA1ハッシュアルゴリズムを実装しているが、SHA1Managedの方は完全にマネージ・コードで同じアルゴリズムを実行しているという点だ。これを変更させる目的は、WSE.configのコメントによれば、.NET Framework 1.0の実装においてXML Webサービスに高い負荷がかかったときの安定性を向上させるということのようだ。


 INDEX
  [特集]次世代XML Webサービスを試す Part 1
  1.WSEのインストール
    2.WSEを使ったセキュア XML Webサービスの実装
    3.セキュアXML Webサービスのクライアントの実装
    4.ほかのWS-Security実装との相互運用(1)
    5.ほかのWS-Security実装との相互運用(2)
 
 「特集:次世代XML Webサービスを試す」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間