SharePoint Server 2007 Beta2 Technical Refresh のインストール

製品版出荷前の最後の公開リリースになるかもしれない、Beta 2 TRが先日ついにリリースされました。 日本ではあまり大々的に取り上げられていないけど、これを待ち望んでいた人は多いはず。 自分もそのうちの一人で、MOSSの検証をしていていくつかうまくいかない機能とかがあったので早くTRで試したいと思ってました。 ということで、早速ダウンロードしてインストールしてみたので、まずはファイルのダウンロードから、MOSSへ適用するまでの手順をめもります。 インストール手順書が米MSサイトにあります。 いろいろなパターンに対応した手順が書いてありますが、どれもかなりめんどくさい手順になっています。 正直ちょっとやる気なくします・・・ http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=920B9690-B835-4785-A771-188C2082B2BC 前提条件今回beta2 TRをインストールする環境は、すでにbeta2がインストール済みです。 インストール手順書でいうところの、「既存の Beta2 環境を Beta 2 Technical Refresh にアップグレードする方法」なります。 1.ダウンロード 以下のURLからWSSとSharePointServerそれぞれダウンロードします。 Windows SharePoint Services 3.0(WSS) http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=e1e51280-71f0-4d60-b2b9-3c49df916bc2 SharePoint Server 2007 http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=0b6bd175-e700-44b8-ab47-e4459250d16d 2.Windows Workflow Foundationをアンインストール MOSS beta2をインストールする前に入れたWindows Workflow Foundationをプログラムの追加と削除から、アンインストールします。 3..NET Framework 3.0 Release Candidateをインストール 以下のサイトから.NET Framework 3.0 Release Candidateをダウンロードしてインストールします。 http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=19E21845-F5E3-4387-95FF-66788825C1AF インストールはライセンス条項に同意して、インストールボタンをクリックするだけなので、画面キャプチャなどは割愛します。 インストール完了後に再起動します。 ※インストールの最後に、Windows Communication Foundationのパッチをインストールするよう指示があるので、こちらも念のためインストールしておいたほうが良いでしょう。 リリースノートを見る限りでは必要ない気もしますが・・・ 4.SharePointの検索サービスを停止 以下の2つのサービスを停止します。 ・Windows SharePoint Services Search ・Office SharePoint Server Search 5.WindowsSharePointServices 3.0 Beta2 TRのインストール 5.1.インストール開始 ダウンロードしたファイルを実行します。 5.2.ライセンス条項 ライセンス条項に同意するをチェックして、[次へ]をクリック。 5.3.SharePoint関連サービスを停止に関するメッセージ Beta2 TR へのアップグレードによりInternet Information Services、SharePoint Administration Services、SharePoint Timer Serviceが再起動されるとのメッセージが表示されます。 [はい]をクリック。 5.4.ファイル展開、インストール ファイルが展開されて、そのままインストールが始まります。 インストールが完了するまでしばらくかかります。 5.5.通知他にもBeta2 TRのインストールをする必要があることをわざわざ教えてくれます。 [OK]をクリック。 5.6.完了 インストール完了メッセージが表示され、WSS Beta2TRのインストール完了。 6.SharePoint Server 2007 Beta2 TRのインストール 6.1.インストール開始 ダウンロードしたファイルを実行します。 6.2.ライセンス条項 ライセンス条項に同意するをチェックして、[次へ]をクリック。 6.3.SharePoint関連サービスを停止に関するメッセージBeta2 TR へのアップグレードによりInternet Information Services、SharePoint Administration Services、SharePoint Timer Serviceが再起動されるとのメッセージが表示されます。 [はい]をクリック。 6.4.ファイル展開、インストール ファイルが展開されて、そのままインストールが始まります。 インストールが完了するまでWSSよりも時間がかかります。 6.5.完了 インストール完了メッセージが表示され、SharePoint Server 2007 Beta2TRのインストール完了。 6.6.アップグレード開始 インストールが完了すると自動的にSharePoint 製品とテクノロジ構成ウィザードが起動します。 指示に従いアップグレードプロセスを開始すると、アップグレードが行われます。 6.7.アップグレード完了 アップグレードプロセスが完了すると、自動的に管理サイトが起動します。 これでアップグレード完了です。 注意 今回、Beta2で作成済みのサイトをBeta2TRにアップグレードする方法を実験しましたが、アップグレード後に発覚した問題が2つあります。 1. 上記手順の6.7のあと、自動的に管理サイトが起動しますが、この起動が失敗しました。 とりあえずもう一度管理サイトへ移動してみると、管理サイトのホームエリアにあるWebパーツのひとつがエラーで表示できなくなっていました。 コレが原因? 2. Beta2TRから、Webアプリケーションのアプリケーションプールを実行するユーザーに、ローカルシステムとローカルサービスが使用できなくなったようです。 そのため、Beta2のころにこれらのユーザーで作成したWebアプリケーションがあると、Beta2TRにした途端に動かなくなってしまいます。 この際に発生したエラーは、「構成データベースに接続できませんでした。」という内容でした。 アプリケーションプールのユーザーをネットワークサービスとか、ドメインユーザーとかに変更したら動くようになりました。

読了時間: 1分

SharePoint Server 上でサイボウズが動く日

Microsoftとサイボウズがグループウェア開発で業務提携! ちょっと驚きました。 これまでは競合製品という認識でいましたが、ついにサイボウズがSharePoint Server上で動く日が来るようです。 これでますますSharePointの充実感が増すわけですね。 その分ユーザーさんのニーズも増えるので、導入を支援する立場としては覚えることがさらに増えるわけですが。 ますます頑張らねば。​

読了時間: 1分

絶対URLからSPViewを取得する

絶対URLからSPViewを取得する方法です。 SPViewはSPListと同様、http://から始まる絶対URLで取得することができません。 SPViewはホスト名からの相対URLで取得します。管理パスとかサブサイトとかで階層がどんなに深くなっていても、ホスト名からの相対URLを指定します。 従って、以下のコードのように何らかのやり方でホスト名までの部分を削除し、その値をSPWebのGetViewFromUrlメソッドに渡します。

1: Uri uri = new Uri("http://test.co.jp/test/Lists/List1/AllItems.aspx");
2: SPSite site = new SPSite(uri.AbsoluteUri);
3: SPWeb web = site.OpenWeb();
4: string targetUrl = uri.AbsoluteUrl.Replace(string.Format("{0}{1}", uri.GetLeftPart(UriPartial.Scheme), uri.Host), "");
5: SPView view = web.GetViewFromUrl(targetUrl);

指定の絶対URLでSPViewが取得できない場合、SPExceptionが発生します。 SPWebやSPListが取得できないときは、FileNotFoundExceptionが発生するのに、SPViewだけはSPExceptionなので、注意が必要です。

読了時間: 1分

絶対URLからSPListItemを取得する

絶対URLからSPListItemを取得する方法です。 SPListItemの取得方法は、対象がファイルまたはフォルダか、リストアイテムかで若干異なります。 ファイル、フォルダの取得 ファイルまたはフォルダのSPListItemを取得する場合、SPListと同様、ホスト名からの相対URLで取得します。 以下のコードでは、Documentsドキュメントライブラリの直下のtestフォルダ内のmemo.txtのSPListItemを取得します。

1: Uri uri = new Uri("http://test.co.jp/Documents/test/memo.txt");
2: SPSite site = new SPSite(uri.AbsoluteUri);
3: SPWeb web = site.OpenWeb();
4: string targetUrl = uri.AbsoluteUrl.Replace(string.Format("{0}{1}", uri.GetLeftPart(UriPartial.Scheme), uri.Host), "");
5: SPListItem file = web.GetListItem(targetUrl);

次は、Documentsドキュメントライブラリの直下のtestフォルダのSPListItemを取得するコードです。

読了時間: 1分

絶対URLからSPListを取得する

絶対URLからSPListを取得する方法です。 結論から言うと、SPListはhttp://から始まる絶対URLで取得することができません。 SPListはホスト名からの相対URLで取得します。管理パスとかサブサイトとかで階層がどんなに深くなっていても、ホスト名からの相対URLを指定します。 従って、以下のコードのように何らかのやり方でホスト名までの部分を削除し、その値をSPWebのGetListメソッドに渡します。

1: Uri uri = new Uri("http://test.co.jp/test/Lists/List1/DispForm.aspx?ID=1");
2: SPSite site = new SPSite(uri.AbsoluteUri);
3: SPWeb web = site.OpenWeb();
4: string targetUrl = uri.AbsoluteUrl.Replace(string.Format("{0}{1}", uri.GetLeftPart(UriPartial.Scheme), uri.Host), "");
5: SPList list = web.GetList(targetUrl);

これで問題なさそうですが、SPWeb.GetListメソッドは一つだけ注意点があります。 SPWeb.GetListメソッドは、引数として渡されたURLのファイル名の部分まで意味を持ちます。 例えば、リスト名までは合っていてもファイル名の部分に間違いがあると、SPListを取得することができません。 以下のコードは、DispForm.aspxがDisp.aspxと間違えているため、SPListは取得できません。

読了時間: 1分

絶対URLからSPWebを取得する

絶対URLからSPWebを取得する方法です。 SPWebを取得するには、まずSPSiteを取得する必要があります。 SPSiteの取得は、別の記事にも書いた通り、SPSiteのコンストラクタの引数に、絶対URLを渡して取得します。 その後、続けてOpenWebメソッドを引数なしで呼び出すことで、SPWebを取得できます。 以下のコードでは、testというサブサイトを指定しています。 このコードの結果は、testサブサイトが取得できます。

1: SPSite site = new SPSite("http://test.co.jp/test/Lists/List1/DispForm.aspx?ID=1");
2: SPWeb web = site.OpenWeb();

SPSiteと同様、サイトが特定できれば、後半のURLは存在しないコンテンツを指していても問題ありません。 以下のコードでは、test2という存在しないサブサイトを指しています。 このコードの結果は、http://test.co.jpのトップサイトが取得できます。

読了時間: 1分

絶対URLからSPSiteを取得する

絶対URLからSPSiteを取得する方法です。 SPSiteのコンストラクタの引数に、絶対URLを渡すとSPSiteが取得できます。

1: SPSite site = new SPSite(http://test.co.jp/test/Lists/List1/DispForm.aspx?ID=1);

管理パスを定義している場合は、SharePointが自動的に管理パスかどうかを判断し、適切なSPSiteを返してくれます。 例えば、http://test.co.jp直下のサイトコレクションの下位にtest1という管理パスを定義し、そこにサイトコレクションを作成した場合、以下のコードではtest1のサイトコレクションを取得します。

1: SPSite site = new SPSite("http://test.co.jp/test1/Lists/List1/DispForm.aspx?ID=1");

サイトコレクションが特定できれば、後半のURLは存在しないコンテンツを指していても問題ありません。 以下のコードでは、test2という存在しないサブサイトを指しています。 このコードの結果は、http://test.co.jpのサイトコレクションが取得できます。

1: SPSite site = new SPSite("http://test.co.jp/test2/Lists/List1/DispForm.aspx?ID=1");

指定の絶対URLでSPSiteが取得できない場合、FileNotFoundExceptionが発生します。

読了時間: 1分

修正モジュールのインストール手順

修正モジュールのインストール手順に関するドキュメントです。 手順だけではなく、本家TechCenterにある修正モジュール一覧と同じような情報も載っています。 Windows SharePoint Services 3.0 用のソフトウェア更新プログラムを展開する http://technet.microsoft.com/ja-jp/library/cc288269.aspx Office SharePoint Server 2007 のソフトウェア更新プログラムを展開する http://technet.microsoft.com/ja-jp/library/cc263467.aspx

読了時間: 1分

Tech Ed 2009 BoFのまとめ資料公開

Tech Ed 2009 で、北端さん、山崎さんとご一緒させていただいたBoFのディスカッション結果をまとめた資料が、山崎さんが代表を務めるオフィスアイ社のサイトで公開されました。 http://www.office-i-corp.jp/events/teched09_bof.htm もうすでにご覧になっている方が多いかと思いますが、私からもご紹介させていただきました。 山崎さんの所感も含め、SharePointを企画・運用されている方々は、ぜひご一読ください。 最後になりましたが、お忙しい中、BoFに足を運んでくださった参加者の皆様、ご参加いただきありがとうございました。 今後も、みなさんでSharePointを活用し、盛り上げていきましょう!​

読了時間: 1分

旧サイトのコンテンツを徐々に移行します

旧サイトのコンテンツですが、そのまま前のサイトに置いておいてもいいのですが検索機能が使えないので、新サイトに順次移行しようと思っています。 旧サイトには約100件の投稿があるのですが、使えそうなものだけを選んで新サイトのリファレンスに移します。 ただし、数が多いので気が向いたときにゆっくり移行していくつもりです。 旧サイトは、コンテンツ移行後もこれまでにいただいた貴重なコメントと共に、今後も残しておきたいと思います。​

読了時間: 1分