程序中,要向指定路径下创建一个TXT文件。
这个路径如果设置为本机经测试可以正常创建,但如果设为网络路径则出现如题错误。
网络路径在web.config中如此设置:
<appSettings>
    <add key="PathOfMarketingAutoMailList" value="\\Rockxp/Wood Share/"/>
  </appSettings>
文件夹Wood Share的读写权限已经分配给 Network Server账户,同时也分配给需要操作此文件的用户。
但要在此文件夹下创建TXT文件时提示:Access to the path'\\Rockxp\Wood Share\Temp.txt'is denied.

解决方案 »

  1.   

    其实就是想在指定网络路径下创建一个TXT文件。
    谁能解决,分立马给您!
      

  2.   

    文件夹Wood Share的读写权限已经分配给 Network Server账户,同时也分配给需要操作此文件的用户。
    ---------------------------------------------
    还要分配给ASPNET帐号可以操作的权限,因为ASP.NET是以ASPNET帐号的身份去操作文件的
      

  3.   

    给文件夹加上Network Server ASPNET用户读写
      

  4.   

    我记得IIS6是分配给Network Server,IIS5是分配给ASPNET。
      

  5.   

    已经查了一个上午了,文件夹的权限是完全公开的,
    真高不明白是那个地方出了问题!
    下面是我操作的完整代码:
    [DllImport("advapi32.dll", SetLastError = true)]
        private static extern bool LogonUser(String lpszUsername, String lpszDomain, String lpszPassword,
                   int dwLogonType, int dwLogonProvider, ref IntPtr phToken);    [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
        private extern static bool CloseHandle(IntPtr handle);    public static void CreateIdentity(string User, string Domain, string Password)
        {
            // The Windows NT user token.
            IntPtr tokenHandle = new IntPtr(0);        const int LOGON32_PROVIDER_DEFAULT = 0;
            const int LOGON32_LOGON_NETWORK_CLEARTEXT = 3;        tokenHandle = IntPtr.Zero;        bool returnValue = LogonUser(User, Domain, Password,
                 LOGON32_LOGON_NETWORK_CLEARTEXT, LOGON32_PROVIDER_DEFAULT,
                 ref tokenHandle);
            if (false == returnValue)
            {
                int ret = Marshal.GetLastWin32Error();
                throw new Exception("LogonUser failed with error code: " + ret);
            }
            WindowsIdentity id = new WindowsIdentity(tokenHandle);
            CloseHandle(tokenHandle);
            id.Impersonate();
        } protected void GreateEmaillists(string proStr, string levelStr,string dateStr)
        {
            CreateIdentity("Wood", "yichuang.com.cn", "861230");
            DataTable TempTable = new DataTable();
            FileStream TempStream = new FileStream(ConfigurationManager.AppSettings["PathOfMarketingAutoMailList"].ToString() + PrefixStr + dateStr + levelStr + ".txt", FileMode.Create, FileAccess.Write);
            StreamWriter TempWriter = new StreamWriter(TempStream, Encoding.Default);
            TempWriter.BaseStream.Seek(0, SeekOrigin.End);
            try
            {
                TempTable = RetrievalProcedures.GetProductSuiteOfLevelEmails(proStr, levelStr);
                foreach (DataRow tempRow in TempTable.Rows)
                {
                    if (!string.IsNullOrEmpty(tempRow["EMail"] as string))
                        TempWriter.WriteLine(tempRow["EMail"] as string);
                    if (!string.IsNullOrEmpty(tempRow["EMail2"] as string))
                        TempWriter.WriteLine(tempRow["EMail2"] as string);
                }
                TempWriter.Flush();
                ScriptManager.RegisterStartupScript(Page, typeof(Page), "Mail", string.Format("alert('{0}');", "Emailaddress has been builded."), true);
            }
            finally
            {
                TempTable.Dispose();
                TempStream.Close();
                TempWriter.Close();
            }
        }
      

  6.   

    问题简单化啊,怎么在指定网路路径下创建TXT文件啊?
      

  7.   

    给文件夹加上Network Server ASPNET用户读写
      

  8.   

    真不好意思,我比较笨的,我只能给文件夹加上Network Server ,但不能加上Network Server ASPNET或者ASPNET,请您再说详细一点好吗?
      

  9.   

    就是跟你的网络目录再加个ASPNET帐号的操作权限,不行就直接加everyone的权限
      

  10.   

    不瞒您说,everyone读写权限也已经都加上了。
      

  11.   

    const int LOGON32_LOGON_NETWORK_CLEARTEXT = 3;
    把3改为2