我想在服务器上创建一个日志文件来跟踪所有客户端登录的详细信息。为此我采用了 Web 服务路径
string p2 = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath + "ServerLog.txt";
public void log(string logData)
{
lock (logLock)
{
fs = new FileStream(p2, FileMode.OpenOrCreate, FileAccess.Write);
m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
m_streamWriter.WriteLine(" " + logData + "\n");
m_streamWriter.Flush();
m_streamWriter.Close();
}
}
我已经在 WebService 中编写了上面的代码,并通过创建一个服务对象来访问它。并且能够修改它。但是一旦我的系统创建了该文件并且另一个用户尝试修改它,然后错误显示为:
由于内部错误,服务器无法处理请求。有关错误的更多信息,请在服务器上打开 IncludeExceptionDetailInFaults(来自 ServiceBehaviorAttribute 或来自配置行为)以便将异常信息发送回客户端,或根据 Microsoft .NET Framework 3.0 SDK 文档打开跟踪并检查服务器跟踪日志。
如果服务器中的文件被删除,第二个用户可以继续登录服务器。但除了第二个用户之外的任何人都可以进行日志记录。