我有一个 ASP.Net MVC 5 应用程序,它使用 Ent Lib 6 Logging Application 块。
细节:
- 我的网站托管在共享托管服务器上。
- 我们使用 Filezilla(FTP 客户端)发布和下载文件/日志。
- 在服务器上创建日志文件
问题:
当我尝试使用 FTP 从服务器下载日志文件时,我收到错误消息“550 进程无法访问该文件,因为它正被另一个进程使用。”
这就是我的 web.config 的样子
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
<appSettings>
.....
</appSettings>
<loggingConfiguration name="" tracingEnabled="true" defaultCategory="General">
<listeners>
<add name="Rolling Flat File Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fileName="C:\ServerPath\Log\Log.txt" footer="" formatter="Text Formatter" header=""
rollFileExistsBehavior="Increment" rollInterval="Day" timeStampPattern="dd-MM-yyyy"
asynchronous="false" />
</listeners>
<formatters>
<add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
template="{timestamp(local:M/dd/yyyy HH:mm:ss.fff)} ({win32ThreadId}) ({severity}) {message}" name="Text Formatter" />
</formatters>
<categorySources>
<add switchValue="All" name="General">
<listeners>
<add name="Rolling Flat File Trace Listener" />
</listeners>
</add>
</categorySources>
<specialSources>
<allEvents switchValue="All" name="All Events" />
<notProcessed switchValue="All" name="Unprocessed Category" />
<errors switchValue="All" name="Logging Errors & Warnings">
<listeners>
<add name="Rolling Flat File Trace Listener" />
</listeners>
</errors>
</specialSources>
</loggingConfiguration>
.....
</configuration>
正如预期的那样,如果我更改我的 Web.config(在服务器上)文件锁定被释放,然后我可以下载它,或者如果我等待足够长的时间,那么锁定也会被释放。但当然,这一切都是不可接受的。那么是否可以从服务器实时获取日志?其他选项可能是使用其他一些日志库。