2011-12-22 10 views
0

現在IISでホストされているWCFサービスで作業しています。 wwwrootフォルダの外にあるディレクトリにアクセスするためにWCFサービスを取得する必要があります。IISでホストされているWCFサービスのwwwroot以外へのディレクトリアクセス

wwwroot以外のディレクトリアクセスが、IIS上でホストされているWCFアプリケーションに制限されていると仮定して、私はIIS上でホストされているASP.Netアプリケーションのために制限されていると思います。

この場合、WCFサービスがwwwrootの外にあるセットフォルダにアクセスする最も安全な方法は何ですか?

BTW - 私はASP.Net互換モードではなく、混在モードで動作しています。

答えて

2

ファイルアクセスは、サービスをホストしているアプリケーションプールの識別情報に基づいて制限されます。サービスは、IIS Webサイトのルートにあるかどうかに関係なく、アプリケーションプールIDがアクセスできるすべてのファイルにアクセスできます。 Server.MapPathなどの相対パスを使用してWebサイトのルート内のファイルにアクセスする場合は、ASP.Net互換モードでWCFサービスを実行する必要があります。 ASP.Netの互換性モードでWCFの詳細については、以下のページを参照してください:あなたの提案Penchoため

http://msdn.microsoft.com/en-us/library/aa702682.aspx

+0

ヘルプChrisに感謝します。 – GrandMasterFlush

1

ベストプラクティスは、サービス用に別のアプリケーションプールを作成し、特別に作成したアカウントを新しいアプリケーションプールのIDとして割り当てることです。次に、アクセスする必要があるフォルダとファイルに必要なアカウントのアクセス許可を与えます。相対パスで参照する場合は、外部フォルダーをサイトの仮想ディレクトリにすることができます。

+0

感謝。私はASP.Net互換モードでWCFサービスを実行していなければならないと思いますが、仮想ディレクトリを使用するのですか?私は現在、混合転送モードで実行しています。 – GrandMasterFlush

+1

はい、ASP.Net互換モードで実行する必要がある仮想ディレクトリと相対パスを使用します。 –

関連する問題