У меня есть веб-служба ASP.NET, которая создает текстовый файл по пути, который передается в качестве параметра методу.
private void CreateFile(string path)
{
string strFileName = path;
StreamWriter sw = new StreamWriter(strFileName, true);
sw.WriteLine("");
sw.Write("Created at " + DateTime.Now.ToString());
sw.Close();
}
Теперь я передаю папку в сети в качестве параметра и вызываю метод
CreateFile(@"\\192.168.0.40\\labels\\test.txt");
При запуске кода из Visual Studio IDE файл создается по пути. Но когда я опубликовал это и развернул в качестве виртуального каталога, он выдал мне ошибку вроде
"System.UnauthorizedAccessException: Access to the path '\\192.168.0.40\labels\test.txt' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.StreamWriter.CreateFile(String path, Boolean append)
at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize)
at System.IO.StreamWriter..ctor(String path, Boolean append)
У меня <identity impersonate="true"/>
в моем web.config
. Моя машина работает в XP, а другая в Windows Server 2003. Для этой папки я установил разрешение WRITE «Любой».