2012-01-17 3 views
2

絶対パスを使用してサーバー上のディレクトリを取得する機能を持つWCFサービスを作成しました。WCFサービス:絶対パスを使用してサーバー上のディレクトリを取得できません

VS2010のデバッグモードでは、一時的にアクセス可能なサービスを起動します。

次に、このサーバーにIISの下にサービスを展開しました。しかし、それはこのディレクトリを取得できないと私に言った。

VS2010とIISは同じサーバーにあります。このディレクトリパスに追加または変更が必要なものがあるかどうかは疑問です。

public void testDir() 
{ 
      string strPhotoRootPath = @"T:\Data\Image"; 

      if (!Directory.Exists(strPhotoRootPath)) 
      { 
       ErrorMsg newError = new ErrorMsg(); 
       newError.errorCode = 1001; 
       newError.errorDetails = "Cannot locate the photolog root directory"; 
       throw new WebFaultException<ErrorMsg>(newError, HttpStatusCode.Forbidden); 
      } 
      ... //rest codes 
} 

このT:\ドライブが別のサーバであるが、現在のマシンからアクセス可能である私は、簡単な関数は次のようであることを

...絶対パスを使用して動作するはずだと思います。

私はここでいくつかのアドバイスを得ることができますしたい!前もって感謝します!

+1

Tはマップされたドライブのように見えますが、私は疑います。 IISは、特に構成されていない限り、アクセスできます。 – rerun

答えて

1

\、代わりにマップされたネットワークドライブのUNCパスを使用しますアカウント。また、KMan氏が指摘したように、アプリケーションプールのIDがUNCパスの宛先にアクセスできることを確認してください。コメントをもとに

EDIT:

Here's Win2003の上でIIS6を使用してアプリケーションプールIDを設定する方法についてのリソース。 IISでドメインアカウントが正しく構成され、アプリケーションが起動していれば、使用したアカウントに共有に対するアクセス許可とそのファイルシステムに対するアクセス許可があることを確認する必要があります。

+0

私は..今私は正しいUNCパスを書く必要があります..ありがとう! – Simon

+0

こんにちは、 "アプリケーションプールIDがUNCパスの宛先にアクセスできるようにする"方法を教えてください。私はWinServer2003でIIS6を使用しています...私は正しいUNCパスを設定しましたが、IISの下にあるサービスはディレクトリを見つけることができませんでした... – Simon

+0

もう一度感謝します..共有ドライブが乱れていたことが判明しました.. 1つとそれは動作します.. – Simon

2

アプリのプールを実行するアカウントは、Tにアクセスできるように、フォルダのアクセス権を設定する必要があります。マップされたドライブは、ユーザーに固有であるよう

関連する問題