调用远程web service一个写日志方法,但web service却无法打开本地文件。
- Delphi(Pascal) code
function TintfServer.AddEmp(XMLstr: WideString): WideString;var Fl: tfilestream; p: PAnsiChar;begin p := '123'; InitializeCriticalSection(log_ThreadLock); EnterCriticalSection(log_ThreadLock); try fl:=TfileStream.Create ('c:\log.txt',fmOpenWrite or fmShareDenyNone); fl.Position := Fl.Size; Fl.Write(p^, StrLen(p)); Result := p; finally LeaveCriticalSection(log_ThreadLock); end;// Result := '<ROOT><MARK>0</MARK><MSG></MSG></ROOT>';end;本机调用虚拟机iis上这个dll的方法 显示错误‘can't open file'c:\log.txt',拒绝访问’
- Delphi(Pascal) code
procedure TForm3.btn1Click(Sender: TObject);var Fl: tfilestream; p: PAnsiChar;begin p := '123'; try fl:=TfileStream.Create ('c:\log.txt',fmOpenWrite or fmShareDenyNone); fl.Position := Fl.Size; Fl.Write(p^, StrLen(p)); except on e: Exception do ShowMessage(e.Message); end;end;在虚拟机上运行这个正常写入 求解。
[解决办法]
右击:c:\a.log,属性->安全
增加everyone对该文件的write权限,确定,再试。