Не удается скомпилировать .csproj программно в ASP.Net - PullRequest
1 голос
/ 07 марта 2012

Я создаю веб-приложение.В котором мне нравится динамически компилировать проект VS с использованием MSBuild.exe.Это прекрасно работает, когда работает через локальную машину.Но когда я настроил в IIS, та же самая реализация не работает.Я подозреваю, что IIS может ограничить некоторые разрешения.Но не ясно.

Ошибка, с которой я столкнулся при компиляции:

CSC: ошибка CS1504: исходный файл 'c: \ Windows \ Temp \ Silverlight, версия = v4.0.AssemblyAttributes.cs«не удалось открыть (« Доступ запрещен »)

Примечание. Я компилирую проект Silverlight.Также вышеупомянутая ошибка - стандартный вывод Process, который завершился с кодом 1.

Код компилирует проект,

 ProcessStartInfo startInfo = new ProcessStartInfo();
 startInfo.FileName = MSBuildPath;
 startInfo.UseShellExecute = false;
 startInfo.CreateNoWindow = true;
 startInfo.WindowStyle = ProcessWindowStyle.Hidden;
 startInfo.RedirectStandardOutput = true;
 startInfo.Arguments = "\"" + file.FullName + "\"" + " /t:Rebuild /p:Configuration=Release";
 this.process = Process.Start(startInfo);

Есть ли какое-либо решение для этого?

1 Ответ

1 голос
/ 07 марта 2012

Файлы «Silverlight, Version = v4.0.AssemblyAttributes.cs» создаются в папке TEMP, и, поскольку системная учетная запись (а также неправильно настроенные учетные записи пользователей) имеют папку TEMP в каталоге c: \ windows \ temp, им пришлось поделитесь тем же именем файла. Это проблема, потому что файл, созданный одной учетной записью, не будет иметь разрешения для другой учетной записи.

Попробуйте следующее:
1. Создайте учетную запись пользователя и настройте удостоверение пула приложений для этой учетной записи.
2. Установите для свойства пула приложений «Загрузить профиль пользователя» значение true.

Это гарантирует, что ваш пул приложений получит свой собственный каталог TEMP и не поделится состоянием с какой-либо другой учетной записью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...