我有ASP.Net和C#應用程序。我正在將圖像上傳到網站並將它們存儲在C:\Images
目錄中,該目錄工作正常。當我將映像保存到C:\Images
文件夾並同時將共享驅動器的物理地址(看起來像\\192.xxx.x.xx\some folder\Images
)複製(或一些時間移動到)共享驅動器。此驅動器已映射到部署服務器。我正在使用IIS託管的網站。複製文件到共享驅動器在ASP.net失敗c#
問題是與共享驅動器複製。當我從本地計算機(部署站點的位置)使用該站點時,該計算機將文件複製到共享驅動器。但是,當我從另一臺機器(除了部署的服務器)使用該網站時,將該映像保存在C:\Images
中,但它不會將該文件複製到共享的驅動器。
下面是我使用
** Loggedon方法的代碼顯示在調試成功。
public static void CopytoNetwork(String Filename)
{
try
{
string updir = System.Configuration.ConfigurationManager.AppSettings["PhysicalPath"].ToString();
WindowsImpersonationContext impersonationContext = null;
IntPtr userHandle = IntPtr.Zero;
const int LOGON32_PROVIDER_DEFAULT = 0;
const int LOGON32_LOGON_INTERACTIVE = 2;
String UserName = System.Configuration.ConfigurationManager.AppSettings["Server_UserName"].ToString();
String Password = System.Configuration.ConfigurationManager.AppSettings["server_Password"].ToString();
String DomainName = System.Configuration.ConfigurationManager.AppSettings["Server_Domain"].ToString();
bool loggedOn = LogonUser(UserName, DomainName, Password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, ref userHandle);
try
{
File.Move(@"C:\Images\" + Filename, updir + "\\" + Filename);
}
catch (Exception)
{
}
finally
{
if (impersonationContext != null)
{
impersonationContext.Undo();
}
if (userHandle != IntPtr.Zero)
{
CloseHandle(userHandle);
}
}
}
catch (Exception)
{
}
}
你可能想利用看看它拋出的異常。 – tzerb
確保正在運行應用程序的用戶具有寫入共享驅動器的適當權限。 – kaptan
它沒有通過任何例外。我也測試過。 –