gpt4 book ai didi

asp.net-mvc - Web部署由于使用文件而失败

转载 作者:行者123 更新时间:2023-12-03 16:06:12 24 4
gpt4 key购买 nike

我正在使用Microsoft的Web Deploy远程代理服务,使我可以轻松地从Visual Studio中将代码发布到服务器。

我正在部署的网站正在使用log4net将消息记录到日志文件中,并且每次尝试部署新版本的代码时,我都会在Visual Studio中收到此错误,指出当前使用了log4net日志文件:

An error occurred when the request was processed on the remote computer. The file 'Web.log' is in use.

The process cannot access 'C:\inetpub\wwwroot\Logs\Web.log' because it is being used by another process.



我可以通过在发布之前进入服务器并执行 iisreset来解决此问题……但这有点违反了从Visual Studio中“轻松”发布的要点:)

有什么办法可以使发布任务自动发出iisreset,还是有其他办法可以解决此问题?

最佳答案

我一直四处张望,发现文件的一些花絮被锁定在其他一些论坛中。您是否尝试过添加

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

到web.config文件中的 <appender>元素?从 Apache docs

Opens the file once for each AcquireLock/ReleaseLock cycle, thus holding the lock for the minimal amount of time. This method of locking is considerably slower than FileAppender.ExclusiveLock but allows other processes to move/delete the log file whilst logging continues.



至于性能方面的考虑,我想您需要测试这是否会影响您,因为我认为这实际上取决于您写入日志文件的频率以及对性能的影响程度。我不敢相信获得/释放锁会花费那么多时间。

关于asp.net-mvc - Web部署由于使用文件而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16174797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com