none
MOSS と ポート共存の Web Application RRS feed

  • 質問

  • こんにちは。いつも助けて頂いてます。

    MOSS2007(WSS3.0)をデフォルトインストールした開発サーバAとBがあります。

     

    開発サーバAにて、Web Application (SharePoint の API は未使用)を開発し、MOSSのデフォルトサイト(ポート=80番)と共存で動作させる為に、以下の設定を行って無事動かすことができました。

     

    1.IIS マネージャにて「SharePoint - 80」の下に仮想ディレクトリを作成し、Web Application のフォルダを割り当てる。

    2.アプリケーションプール(NETWORK SERVICEアカウント)を新設し、1.の Web Application に割り当てる。

    3.1.の Web Application を SharePoint の管理外に設定する。

    stsadm  -o addpath  -url http://localhost/XXX  -type exclusion

    4.Web.Config に以下を追加する。

    <pages buffer="true" enableSessionState="true"/>

    5.IEから http://localhost/XXX と入力して動作確認する。

     

    ところが、開発サーバBで同様の設定を行うと、

    「構成にエラーがあります」と出ました。さらに Web.Config の変更の監視ができないという詳細メッセージがでました。

    これを改善する為に、以下のフォルダ

    C:\InetPub\wwwroot\wss\VirtualDirectories

    に対して、NETWORK SERVICE の実行・参照権限を付与したところ、構成エラーは改善されたのですが、

    今度は、末尾に示すようなエラーが発生し、原因の特定ができません。

    イベントログにも同様の情報が吐き出されていました。

    Web.Config に <sessionState> タグや <httpModule> タグを追記してみましたが、改善しませんでした。

     

    ここをこうしてみろ、とかサーバ間で比較すべき事など(フォルダ権限の比較は行いました)、何か情報ありましたら

    アドバイスください。よろしくお願いいたします。

     

    尚、開発サーバA・Bにて、ポートを変えて(例えば5000番)新しく Web サイトを作成すると、問題なく共存できます。

     

     

     

    ■開発サーバA

    Windows 2003 Standard

    VS2005 Pro インストール済み

    ドメインコントローラと兼用

     

     

     

    ■開発サーバB

    Windows 2003 R2 Enterprise

    VS2005 Pro インストール済み

    ドメイン傘下のメンバーサーバ(開発サーバAとは別のドメイン)

     

     

     

    ■エラーメッセージの内容

    '/XXX' アプリケーションでサーバー エラーが発生しました。

    オブジェクト参照がオブジェクト インスタンスに設定されていません。

    説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。

    例外の詳細: System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。

    ソース エラー:

    現在の Web 要求の実行中にハンドルされていない例外が生成されました。障害の原因および発生場所に関する情報については、下の例外スタック トレースを使って確認できます。

    スタック トレース:

    [NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。]
       Microsoft.SharePoint.Utilities.SPUtility.AlternateServerUrlFromHttpRequestUrl(Uri url) +28
       Microsoft.SharePoint.Administration.SPAlternateUrl.get_ContextUri() +134
       Microsoft.SharePoint.WebControls.SPControl.GetContextWebApplication(HttpContext context) +131
       Microsoft.Office.Server.ServerContext.GetContext(HttpContext httpContext) +93
       Microsoft.Office.Server.ServerContext.get_Current() +29
       Microsoft.Office.Server.Administration.SqlSessionStateResolver.System.Web.IPartitionResolver.ResolvePartition(Object key) +70
       System.Web.PartitionManager.GetPartition(IPartitionResolver partitionResolver, String id) +244
       System.Web.SessionState.SqlSessionStateStore.GetConnection(String id, Boolean& usePooling) +52
       System.Web.SessionState.SqlSessionStateStore.SetAndReleaseItemExclusive(HttpContext context, String id, SessionStateStoreData item, Object lockId, Boolean newItem) +178
       System.Web.SessionState.SessionStateModule.OnReleaseState(Object source, EventArgs eventArgs) +476
       System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +92
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64
    


    バージョン情報: Microsoft .NET Framework バージョン:2.0.50727.1433; ASP.NET バージョン:2.0.50727.1433

    2008年12月4日 6:01

回答

  • そのような設定は一切必要なかったと思います。

    SharePointと同じアプリケーションドメインにあると、SharePointのグローバルハンドラが働きます。エラーから察するに、あきらかにSharePointのグローバルハンドラがaspxファイルを処理しています。

    ですが、作成したWebアプリケーションが異なるアプリケーションドメインにあれば、その対象外だったと思います。

    私は現に

    http://server1/

    にMOSS2007を

    http://server1/WebApp1

    に全く関係ないアプリケーションをインストールできています。管理外パスの設定もしてません。

     

    • 回答としてマーク 服部清次 2009年2月4日 5:55
    2009年1月29日 11:32
  • こんにちは

    おしゃる通り、アプリケーションプールを分けると言うことです。

    私は、汎用のWebアプリケーション用のアプリケーションプールを作成しておりますので、

    それらと分けております。

    そうですね、「仮想ディレクトリ」じゃなく「アプリケーション」(IIS7の場合)で作成します。IIS6なら、たぶんIISマネージャ上、新規作成->仮想ディレクトリ なんでしょうけど、黄色い歯車みたいなマークになるやつです。IISマネージャで、該当するSharePointで使われているWebサイトの下にそれを作って、そこの[プロパティ] -> [アプリケーションプール] で別のプールにします。

    私の環境ではとくにSharePointが悪さしてるような点はありませんでした。IIS上の[Web1サイト]は一緒でも、global.asax, web.config 的にもルートとして扱われてるからかなと推測しています。

     

    • 回答としてマーク 服部清次 2009年2月4日 5:55
    2009年1月30日 17:22

すべての返信

  • そのような設定は一切必要なかったと思います。

    SharePointと同じアプリケーションドメインにあると、SharePointのグローバルハンドラが働きます。エラーから察するに、あきらかにSharePointのグローバルハンドラがaspxファイルを処理しています。

    ですが、作成したWebアプリケーションが異なるアプリケーションドメインにあれば、その対象外だったと思います。

    私は現に

    http://server1/

    にMOSS2007を

    http://server1/WebApp1

    に全く関係ないアプリケーションをインストールできています。管理外パスの設定もしてません。

     

    • 回答としてマーク 服部清次 2009年2月4日 5:55
    2009年1月29日 11:32
  • R00tZer0 さま、情報ありがとうございました。
     
    諸事情により開発環境Bが無くなってしまいましたが、後学の為によろしければご教授ください。
     
    ASP.NET にて、アプリケーションドメインを分ける方法がよく理解できておりません。どのようにすればよいのでしょうか。
    アプリケーションプールを分けるのとは別ですよね。
    複数の Web サイトでポート 80 を共用することはできないと思いますので、 Web サイトを分けるのでもなさそうですし、
    浅学で恐縮ですが、参考サイトなどでも良いので御示唆頂ければと思います。
     
    自分なりに少し調べて、ここ↓を読むと、何もせずとも仮想ディレクトリ単位で分かれるように読めますし、
    であれば逆になぜ開発環境Bでそうなってしまっているのか、という点で行き詰ってしまいますね。。。
    もはや環境がなくて調べようがないのかもしれません。
     
    また機会を見て、新しく環境を作り確認してみたいと思います。
     
    2009年1月30日 4:23
  • こんにちは

    おしゃる通り、アプリケーションプールを分けると言うことです。

    私は、汎用のWebアプリケーション用のアプリケーションプールを作成しておりますので、

    それらと分けております。

    そうですね、「仮想ディレクトリ」じゃなく「アプリケーション」(IIS7の場合)で作成します。IIS6なら、たぶんIISマネージャ上、新規作成->仮想ディレクトリ なんでしょうけど、黄色い歯車みたいなマークになるやつです。IISマネージャで、該当するSharePointで使われているWebサイトの下にそれを作って、そこの[プロパティ] -> [アプリケーションプール] で別のプールにします。

    私の環境ではとくにSharePointが悪さしてるような点はありませんでした。IIS上の[Web1サイト]は一緒でも、global.asax, web.config 的にもルートとして扱われてるからかなと推測しています。

     

    • 回答としてマーク 服部清次 2009年2月4日 5:55
    2009年1月30日 17:22
  • R00tZer0 さま、ご返信ありがとうございます。

     

    アプリケーションプールですか。今となっては確かめようがないのですが、開発サーバAは生き残っているので、確認してみました。アプリケーションプールは分けており、黄色い歯車になっていました。

     

    また次に開発環境を起動する際には注意深く確認しながら試してみたいと思います。

     

    ありがとうございました。

    2009年2月2日 9:09
  • こんにちは!
    フォーラム オペレーターの服部 清次です。 (^^)

    > R00tZer0 さん、
    とても詳しくご丁寧な回答をいただき、ありがとうございます!

    > とりまー さん、
    今回、残念ながら開発環境の1つがなくなってしまったとのことですが、、、とりまー さんが投稿された質問に関しまして、R00tZer0 さんの回答が役に立ったようですので、勝手ながら、私の方で回答チェックを付けさせていただきました。
    また、重複投稿となっていたコメントも削除させていただきましたので、ご了承ください。

    TechNet フォーラムが新しくなったばかりで、まだちょっと使い勝手が分かりにくいかもしれませんが、また何か疑問や質問がありましたら、ぜひ TechNet フォーラムをご利用ください。
    これからも、よろしくお願いします。
    それでは、また! (^_^)/


    ______________________________________
    マイクロソフト株式会社 フォーラム オペレータ 服部 清次
    • 回答の候補に設定 14yog 2012年8月24日 14:51
    • 回答の候補の設定解除 14yog 2012年8月24日 14:55
    2009年2月4日 6:00