Net Core Блокировка файлов -- asp.net-core поле с участием .net-core пол Связанный проблема

NET Core locking files


44
vote

проблема

русский

У меня есть приложение Asp.net Core. Я запускаю приложение, запустив команду

 <код> dotnet run   

Я вижу следующую ошибку в одну из пяти ситуаций, когда я создаю это приложение ASP.NET Core.

C: ... Ошибка CS2012: не удается открыть «C: ... bin Debug Netcoreapp1.0 aaa.web.dll» для записи - «Процесс не может получить доступ к файлу» C:. .. bin debug netcoreapp1.0 aaa.web.dll ', потому что он используется другим процессом.'

В дополнение к вышеуказанной проблеме я также не вижу обновлений, которые я делаю в файле cshtml. Я должен остановить <код> dotnet run команду, снова создайте приложение, а затем запустите команду <код> dotnet run .

Как я могу исправить эти проблемы?

Введите описание изображения здесь

Английский оригинал

I have a ASP.NET Core app. I run the application by running the command

dotnet run 

I'm seeing the following error in one out of five situations when I build this ASP.NET Core app.

C:...error CS2012: Cannot open 'C:...inDebug etcoreapp1.0AAA.Web.dll' for writing -- 'The process cannot access the file 'C:...inDebug etcoreapp1.0AAA.Web.dll' because it is being used by another process.'

In addition to the above issue, I also see no updates that I make in the CSHTML file. I have to stop the dotnet run command, build the app again and then run the dotnet run command.

How can I fix these issues?

enter image description here

</div
     

Список ответов

21
 
vote

Это также может помочь при запуске приложения Aspnetcore в IIS.

Добавьте следующее на ваш CSPROJ:

 <код>   <Target Name="PreBuild" BeforeTargets="PreBuildEvent">     <Exec Command="echo &quot;App Offline&quot; /a &gt; &quot;$(ProjectDir)app_offline.htm&quot;" />   </Target>    <Target Name="PostBuild" AfterTargets="PostBuildEvent">     <Exec Command="del &quot;$(ProjectDir)app_offline.htm&quot;" />   </Target>   
 

This may also help when running your aspnetcore app in IIS.

Add the following to your csproj:

  <Target Name="PreBuild" BeforeTargets="PreBuildEvent">     <Exec Command="echo &quot;App Offline&quot; /a &gt; &quot;$(ProjectDir)app_offline.htm&quot;" />   </Target>    <Target Name="PostBuild" AfterTargets="PostBuildEvent">     <Exec Command="del &quot;$(ProjectDir)app_offline.htm&quot;" />   </Target> 
</div
 
 
     
     
20
 
vote

Если он находится на локальном и приложении работает на IIS, то в панели задач Windows до вашего времени даты должен быть вариант IIS Express. Выберите IIS Express, выберите Выход. Попробуйте снова запустить приложение.

Выход IIS Express

 

If it is on local and application is running on IIS, then in windows task bar before your date time, there should be a IIS Express Option. select IIS Express, select exit. Try running application again.

exit IIS Express

</div
 
 
19
 
vote

В моем случае я получил такую ​​же проблему из-за dotnet watch rund команду даже после остановки режима часов.
Visual Studio сообщил об этом сообщении об ошибке: Файл заблокирован: ".NET Core Host ( PID )"
Убивая процесс с помощью PID исправлена ​​проблема.

 

In my case, I got the same issue due to dotnet watch run command even after stopping the watch mode.
Visual studio reported this error message : The file is locked by: ".NET core Host (pid)"
killing the process with the pid fixed the issue.

</div
 
 
       
       
9
 
vote

При попытке убить процесс с использованием <код> /taskkill /f /pid <number in the error> это говорило мне, что процесс даже не существует.

Мне просто пришлось найти <код> .NET Core Host в диспетчере задач и завершить его там.

Это иногда происходит, когда я редактирую тестовый проект на <код> Core 3.0 - не с использованием IIS, это библиотека классов и тестовый проект только в решении.

Введите описание изображения здесь

 

When trying to kill the process using /taskkill /f /pid <number in the error> it was telling me the process didn't even exist.

I simply had to find .NET Core Host in Task Manager and end it there.

This occasionally occurs when I edit a test project on Core 3.0 - not using IIS, it's a class library and a test project in a solution only.

enter image description here

</div
 
 
   
   
6
 
vote

Команда dotnet watch может отслеживать изменения файловой системы и редактировать и компилировать их в процессе выполнения. Это делается сначала установкой <код> Microsoft.DotNet.Watcher.Tools пакета в <Код> tools Раздел файла project.json. Смотрите документацию своего использования Здесь .

Как только он установлен, вы можете запустить приложение с командой <код> dotnet watch run и сделать редактирование, избегая ручного перезапуска приложения.

 

The dotnet watch command can track file system changes and edits and compile them in to the running process. This is done by first installing the Microsoft.DotNet.Watcher.Tools package in the tools section of the project.json file. See documentation of its usage here.

Once it is installed, you can then run the app with the command dotnet watch run and make edits while avoiding the manual restarting of the application.

</div
 
 
6
 
vote

Я закончил переработать пул приложений, чтобы разблокированы мои DLL. Введите описание изображения здесь

 

I ended up recycling the Application Pool to get my dlls unlocked. enter image description here

</div
 
 
6
 
vote

Откройте диспетчер задач, найдите .NET Core Host, щелкните правой кнопкой мыши, конечное задание. Введите описание изображения здесь

 

Open the Task Manager, find .NET Core Host, right-click, end task. enter image description here

</div
 
 
5
 
vote

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

 

This has happened to me many times. The issue, at least in my case, has been that I have the application running. So when the compiler tries to update the dll it can't because the dll is locked and in use by the running application. Once I close the application and do the compile again, it works fine.

</div
 
 
         
         
2
 
vote

Я могу быть немного поздно на вечеринку здесь, но для будущих людей, читающих этот вопрос, появилось бы, что это немного «функции» с тем, как VS / Core может взаимодействовать с IIS и остановить файлы из быть заблокированным:

https : //developerCommunity.visualstudio.com/content/problem/546858/bin-files-locked-by-iis-worker-Process-Process-HTML

Это, по-видимому, исследуется и рассматривается для .NET CORE VNEXT.

 

I may be a bit late to the party here, but for future people reading this question, it would appear that this is a bit of a 'feature' with how VS/core is able to interact with IIS and stop files from being locked:

https://developercommunity.visualstudio.com/content/problem/546858/bin-files-locked-by-iis-worker-process-1.html

It is apparently being investigated and looked into for .net core vnext.

</div
 
 
2
 
vote

100% Работа для меня

используется другим процессом .NET CORE

  1. Перейти к менеджеру задач (для Windows)
  2. Щелкните правой кнопкой мыши .net Core Host
  3. нажмите кнопку Как бы посмотреть это изображение
 

100% Working For Me

it is being used by another process .net core

  1. go to task manager (for windows )
  2. Right click .NET Core Host
  3. click End Task as like see this image
</div
 
 
1
 
vote

Я все еще бегаю в это регулярно в VS2017 и VS2019. Надеюсь, это поможет кому-то.

Это то, что работает каждый раз для меня.

При использовании iisexpress - остановите приложение, используя значок в панели задач (рядом с часами / временем) При использовании IIS - остановка и перезапустить сайт ИЛИ В Admin Command Command Run Taskkill -F -IM Node.exe (убивает все процессы узла в данный момент)

 

I'm still running into this regularly in VS2017 and VS2019. Hopefully this helps someone.

This is what works every time for me.

If using IISExpress - Stop the Application using the icon in the task bar (near the clock/time) If using IIS - Stop and Restart the site OR In an Admin command prompt run taskkill -F -IM node.exe (Kills all node processes currently running)

</div
 
 
1
 
vote

Эта проблема в совершенстве, когда вы устанавливаете <код> AspNetCoreHostingModel <код> "OutOfProcess" Тогда у вас есть два решения проблемы:

  1. Изменение модели хостинга на «INPROCSESS»
  2. Используйте ниже команду в cmd
 <код> taskkill /f /pid {.netcore hosting pid , show you in error line in visual studio}   

Для использования этой команды вы не используете <код> "" и <код> {} .

 

This problem offen when you set AspNetCoreHostingModel to "OutOfProcess" then you have two solution for problem:

  1. change hosting model to "InProcess"
  2. use below command in CMD
taskkill /f /pid {.netcore hosting pid , show you in error line in visual studio} 

For use that command, you do not use "" and {}.

</div
 
 

Связанный проблема

12  Сырые запросы SQL и основной базы  ( Raw sql queries and entity framework core ) 
Я переносим свое приложение в Core Ass.net MVC Core и Framework Framework, и я нашел проблему. У меня есть RAW SQL-запрос к сущности, как это <код> var rawS...

3  .NET Жила - глобализация и локализация - библиотека классов  ( Net core globalization and localization class library ) 
<Р> После этой документации о том, как осуществить глобализацию и локализации с использованием .NET сердечник, моя цель состоит в том, чтобы хранить все свои...

282  Как настроить Automatper в ASP.NET CORE  ( How to set up automapper in asp net core ) 
Я относительно новый в .NET, и я решил решить .NET Core вместо того, чтобы изучить «старые способы». Я нашел подробную статью о Настройка AutomApper для Core...

0  ASP .NET CORE 2.2 - JSON.Stringify (данные) не работает  ( Asp net core 2 2 json stringifydata not working ) 
Я использую ASP .NET CORE 2.2, чтобы создать корзину. Итак, я хочу добавить элементы на корзину, когда пользователь нажимает кнопку Добавить в корзину. Как вы...

-1  Преобразование существующего приложения DNN в .NET CORE  ( Converting existing dnn application to net core ) 
Преобразование существующего приложения DNN на .NET CORE У меня есть приложение DNN, имеющую ADO, которое мне нужно для преобразования в Core .Net с помощью...

1  Почему я получаю ошибку без изученного типа из моей сетки Tagheelper Kendoui в моем приложении Core Core Asp.net?  ( Why am i receiving an uncaught type error from my kendoui taghelper grid in my a ) 
У меня есть метка Helper Kendoui Grid, сетка фильтруется, но когда я добавил свойства фильтра, я получаю сообщение об ошибке: <код> Uncaught TypeError: t is...

1  Образец фрагментов графика Microsoft для Core Core 3.1 - Ошибка аутентификации  ( Microsoft graph snippets sample for asp net core 3 1 authentication error ) 
Насколько я знаю, я следовал инструкциям по настройке образец графа Microsoft https: //github.com/microsoftgraph/aspnet-snippets-sample , в том числе присоед...

4  SeriLog PushProperty в приложениях - конфигурация не работает  ( Serilog pushproperty in appsettings configuration not working ) 
<Код> ASP.NET Core 2.2.0 | <Код> Serilog.AspNetCore 2.1.1 | <Код> Serilog.Sinks.File 4.0.0 Я инициализирую serilog в программе.cs, чтение конфигурации из...

0  Получить претензии в 5 клиента ASP.NET MVC, набор для TestUser в удостоверении Server 4  ( Get claims in asp net mvc 5 client set for testuser in identity server 4 ) 
<Р> Я мой клиент добавил в приложение поставщика идентичности IdentityServer4. <код> new Client { ClientId = "mvc4Simple", ...

1  Интеграция с ForgeRock  ( Integration with forgerock ) 
<Р> ForgeRock всегда возвращает HTTP ошибку 500 для SSO. Я использую itfoxtec-тождественное-saml2 для связывания (редирект) в моем asp.net основного приложения...

15  Asp.net ядра локализованного ресурса в отдельной сборке  ( Asp net core localized resource in separate assembly ) 
Я пытаюсь использовать новые функции локализации CORE .NET CORE, но за пределами простого образца Microsoft привел здесь, https://docs.microsoft.com/en-us/as...

5  Используйте тот же файл `.resx` файл в Core Asp.net и проектом консоли Core  ( Use same resx file in asp net core and net core console project ) 
Я реализовал локализацию в ядре ASP.NET в соответствии с этим: https://docs.microsoft.com/en-us/aspnet/core/fundementals/Localization У меня есть общий пр...

0  Не могу получить SigninAsync () работать с другой схемой, помимо схемы по умолчанию  ( Cant get signinasync to work with a different scheme besides the default sche ) 
У меня есть 2 метода аутентификации в моем приложении. 1, что аутентифицируется против AD и 1, который является регулярным логином. Обе методы аутентификации ...

121  Как прочитать тело запроса в контроллере asp.net core webapi?  ( How to read request body in an asp net core webapi controller ) 
Я пытаюсь прочитать тело запроса в <код> OnActionExecuting метода, но я всегда получаю <код> null для тела. <код> var request = context.HttpContext.Reques...

0  ASP.NET CORE 3.0 ConfigureAnaphationCookie вне конфигурации  ( Asp net core 3 0 configureapplicationcookie outside of configureservices ) 
При установке файла cookie Expiretimespan в Configureservices он работает отлично. Тем не менее, я хотел бы получить временную базу данных из базы данных, поэ...

Связанный проблема

12  Сырые запросы SQL и основной базы 
3  .NET Жила - глобализация и локализация - библиотека классов 
282  Как настроить Automatper в ASP.NET CORE 
0  ASP .NET CORE 2.2 - JSON.Stringify (данные) не работает 
-1  Преобразование существующего приложения DNN в .NET CORE 
1  Почему я получаю ошибку без изученного типа из моей сетки Tagheelper Kendoui в моем приложении Core Core Asp.net? 
1  Образец фрагментов графика Microsoft для Core Core 3.1 - Ошибка аутентификации 
4  SeriLog PushProperty в приложениях - конфигурация не работает 
0  Получить претензии в 5 клиента ASP.NET MVC, набор для TestUser в удостоверении Server 4 
1  Интеграция с ForgeRock 
15  Asp.net ядра локализованного ресурса в отдельной сборке 
5  Используйте тот же файл `.resx` файл в Core Asp.net и проектом консоли Core 
0  Не могу получить SigninAsync () работать с другой схемой, помимо схемы по умолчанию 
121  Как прочитать тело запроса в контроллере asp.net core webapi? 
0  ASP.NET CORE 3.0 ConfigureAnaphationCookie вне конфигурации