2011-10-17 2 views
0

Когда я запускаю этот код с помощью проекта консольного приложения, он работает хорошо, но когда я запускаю его в webpart, он генерирует исключение «Доступ к путь отрицается ". Я хочу получить доступ к каталогам с анонимным пользователем с моего сайта sharepoint.При использовании Directory.GetFiles (...) я получаю исключение «Доступ к пути запрещен»

Даю полный доступ (чтение/запись) "Wwwroot" папку для "всех", "Анонимные LOGON", "IIS_IUSRS"

string VideosPath = @"\\10.2.10.2\inetpub\wwwroot\Videos"; 
string[] fileDirectories= 
    System.IO.Directory.GetDirectories(VideosPath, "*", SearchOption.AllDirectories); 

Спасибо за Everone, я решаю проблему, используя делегат

 SPSecurity.RunWithElevatedPrivileges(delegate() 
       { 
        using (SPSite site = new SPSite(SPContext.Current.Site.Url)) 
        { 
         using (SPWeb currentWeb = site.OpenWeb(SPContext.Current.Web.ID)) 
         { 
string[] fileDirectories= 
     System.IO.Directory.GetDirectories(VideosPath, "*", SearchOption.AllDirectories); 

         } 
        } 
       } 
      ); 
+0

Это путь относительно вашего сайта, вашего приложения или физического диска? –

+0

Может быть, это поможет > http://stackoverflow.com/questions/4986293/access-to-the-path-is-denied-when-using-directory-getfiles – user997287

+0

Может быть, это поможет > http://stackoverflow.com/questions/4986293/access-to-the-path-is-denied-when-using-directory-getfiles – user997287

ответ

1

Ваш путь @"\\10.2.10.2\... будет ссылаться на корень текущего диск, чего не должно быть.

Понадобится:

string VideosPath = Server.MapPath("~/10.2.10.2/..."); 
... 

где ~/ корень вашего приложения и просто / бы корень «сайта»

+0

Возможно, вы захотите уточнить: указание сетевого ресурса не имеет никакого отношения к «текущему диску». \\ 10.2.10.2 \ указывает на то, что сетевой ресурс и т. д. ~/10.2.10.2/не то, что предназначено –

+0

У меня есть сайт sharepoint на сервере, я пытаюсь получить доступ с моего сервера на другой сервер (/ 10.2.10.2/), мой код запускается на моем сервере и он должен подключить другой сервер, и он должен принимать видеофайлы. – ygy59

1

анонимный счет веб-сервер не является анонимной учетной записи на удаленной машине.

Чтобы сделать его работу, создайте новую учетную запись на обеих машинах с одинаковым именем и паролем, а затем пул приложений на веб-сайте, запущенный под этой учетной записью. Возможно, «только» с IIS, использующим эту учетную запись, будет достаточно, поэтому сначала попробуйте.

С этим предоставите разрешения учетной записи через папку и все ее родительские папки.

Смежные вопросы