ASP.Net не может создать / теневую копию

Я неоднократно получаю эту ошибку при разработке приложений ASP.Net:

  Cannot create/shadow copy 'XXXXX' when that file already exists

Где XXXXX - случайная DLL. Обычно DLL является одной из библиотек DLL от корпоративной библиотеки Microsoft, но она варьируется.

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

Я видел несколько решений. Например, этот вопрос . Я попытался использовать параметр «Чистое решение», и я также просто перезапустил локальный IIS. Тем не менее, он по-прежнему происходит с той же случайной, но постоянной частотой.

Я также видел, как многие люди упоминают использование этой опции в файле конфигурации:

<hostingEnvironment shadowCopyBinAssemblies="false" />

Однако другие говорили, что это проблематично, и его, безусловно, не следует использовать в производстве.

Итак, должен ли я просто отказаться и попробовать параметр shadowCopyBinAssemblies? (И не копируйте это изменение в другие среды.) Я единственный, кто часто задает эту проблему?

Примечание. Я использую Visual Studio 2008.

asp.net,assemblies,web-config,

42

Ответов: 12


23 ов принято

Следующие обходные пути происходят из этого ныне несуществующего подключения выпуска :

  • добавьте <hostingEnvironment shadowCopyBinAssemblies="false" />в <system.web>раздел вашего файла web.config.
  • Перезапустите Cassini, когда вы получите проблему
  • Если вы получите ошибку, остановите отладчик, щелкните правой кнопкой мыши по решению и «очистите решение». Хит F5 для перезапуска отладчика. Это действительно раздражает, так как у меня есть коэффициент отказов 50% для меня, и вы думаете, что не должно быть ручной опции CLEAN SOLUTION! Это приложение POS за 1200 долларов США должно очистить его автоматически!
  • Вот еще одно обходное решение, которое может быть более привлекательным для некоторых, любезно предоставлено Гэри Фарром ( http://blogs.claritycon.com/blogs/gary_farr/archive/2007/03/09/2888.aspx ).
  • Добавьте следующие события для предварительной сборки:

    IF EXIST $(TargetPath).LOCKED (del $(TargetPath).LOCKED) ELSE (IF EXIST $(TargetPath) (move $(TargetPath) $(TargetPath).LOCKED))

  • Обходной путь, который выполняет эту работу для меня, вместо использования «Build» использует «Build Solution»,

  • После успешной сборки я считаю до десяти, затем обновляю свою веб-форму.
  • Я обнаружил, что перерегистрация ASP.NET для IIS проблема «уходит» - с тех пор у меня не было проблемы. Вам нужно будет выполнить следующую команду в командной строке:
    C:WINDOWSMicrosoft.NETFrameworkv2.0.50727aspnet_regiis.exe -i. Это более чем вероятно не сработает для всех - это сложная проблема.
  • перезапустить VS.
  • При очистке решения было выпущено несколько предупреждений о файлах, которые невозможно удалить. Эти файлы имели свой набор свойств только для чтения. После установки свойства этих файлов для чтения / записи проблема была решена.
  • Перезапустить IIS

EDIT: элементы, извлеченные из старой версии страницы ( с разрешения archive.org).


39

Подождите где-нибудь между 10-30 секундами и нажмите «Обновить». По какой-то причине это всегда работает для меня.


5 ов

Просто перезапустите Visual Studio, которая сработала для меня.


1

Откройте свойства проекта, откройте вкладку «Веб» и убедитесь, что параметр «Включить редактирование и продолжение» не установлен.


1

В моей ситуации только iisresetработало.

asp.net, узлы, веб-конфигурации,
Похожие вопросы
Яндекс.Метрика