程序中,要向指定路径下创建一个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.
这个路径如果设置为本机经测试可以正常创建,但如果设为网络路径则出现如题错误。
网络路径在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.
解决方案 »
- 如何保证3个下拉列表的值之和为100%
- 正由另一进程使用,因此该进程无法访问该文件
- 弹出窗口被block 住了,怎么样才能克服这个问题
- 后台获取页面html控件的问题!
- 一个AjaxPro问题??
- dropdownlist这个上面怎样用css呢?
- 怎样实时得知TextBox1.text内容的长度?
- 怎样给TextBox添加一个Click或其他像onKeyDown, onKeyPress等事件?
- 求一个简单的正则表达式
- 请问我装了exchange2000后,原来的aspx文件都不能访问了,怎么办?
- runat="server" 的div问题
- 向指定网络路径下写文件出现Logon failure: unknown user name or bad password 这个错误
谁能解决,分立马给您!
---------------------------------------------
还要分配给ASPNET帐号可以操作的权限,因为ASP.NET是以ASPNET帐号的身份去操作文件的
真高不明白是那个地方出了问题!
下面是我操作的完整代码:
[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();
}
}
把3改为2