2012-05-23 2 views
2

Я пытаюсь получить доступ к сетевому диску со страницы ASP.NET. Технически это страница приложения SharePoint (_layouts/mycompany/mypage.aspx), но я считаю, что принципы одинаковы.Приложение ASP.NET получает system.unauthorizedaccessexception при доступе к сетевому диску

string filePath = @"\\companyshare\temp\test.txt"; 
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read); 

Когда я ударил вторую строчку в коде выше, я получаю ошибку:

Access to the path '\companyshare\temp\test.txt' is denied.

Пул приложений для этого сайта выполняется под учетной записью домена (моякомп \ adminacct). MYCOMPANY \ adminacct имеет доступ к файлу \ companyshare \ temp \ test.txt. Я подтвердил, что, войдя на сервер с учетными данными MYCOMPANY \ adminacct и перейдя к файлу, используя тот же путь, что и в коде.

Я бегу IIS 7.5

Вопросы

Почему приведенный выше код по-прежнему получать доступ запрещен, даже если учетная запись пула приложений имеет доступ к папке и файлу?

Есть ли способ подтвердить, что мой код действительно пытается получить доступ к этому файлу с учетными данными, которые, как я считаю, он использует?

ответ

1

Чтобы отладить, первое, что я попробовал, - использовать олицетворение в файле web.config, чтобы заставить процесс ASP.NET запускаться как самостоятельно, или у учетной записи, которую вы можете гарантировать, есть доступ к пути UNC-файла.

<identity impersonate="true" userName="yourDomain\yourAccountName" password="xyz" /> 

Лично я выбрал бы использовать олицетворение в приложении над учетными данными в пуле приложений IIS, но это я.

Вот good article on server process identity and debugging Я использовал несколько раз.

+0

Это звучит элементарно, но как вы подтверждаете, что работаете под определенной учетной записью? Я хочу подтвердить, что любые изменения, которые я делаю, делают то, что я ожидаю от них. – RWL01

+0

Я опубликовал статью, в которой все очень хорошо. Я использовал его для тестирования в прошлом с большим успехом. Не знаете, какую версию IIS вы используете - вы можете отметить это в своем вопросе. –

+0

Это было так просто, что сработало. Благодарю. – RWL01

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