4 messaggi dal 23 giugno 2006
Premesso che sono un ignorante:
Sto cercando di far funzionare una pagina aspx che permette di copiare un file da un server_directory_speciale che ha un unico utente abilitato (utentespeciale, passwordspeciale ) ad una server_directory_sito che risiede nel sito (appartenente al dominio) che sto sviluppando.
----------------------
Documenti.aspx.vb
>>
Dim procID As Integer
Dim oProc As System.Diagnostics.Process = New System.Diagnostics.Process()
oProc.StartInfo.UseShellExecute = False
oProc.StartInfo.Domain = "dominio"
oProc.StartInfo.UserName = "utentespeciale"
Dim psw As New System.Security.SecureString
Dim pswn As String = "passwordspeciale"
Dim charArray As Char() = pswn.ToCharArray
Dim s As String
For Each s In charArray
psw.AppendChar(s)
Next
psw.MakeReadOnly()
oProc.StartInfo.Password = psw
oProc.StartInfo.WindowStyle = Diagnostics.ProcessWindowStyle.Hidden
oProc.StartInfo.Arguments = "\\server_directory_sito\VBScript.vbs " & Codice
oProc.StartInfo.FileName = "\\server_directory_sito\Wscript.exe"
oProc.Start()
procID = oProc.Id
oProc.WaitForExit()
Dim procEC As Integer = -1
If oProc.HasExited Then
procEC = oProc.ExitCode
End If
------------------------------
VBscript.vbs
>>
' VBScript File
Option Explicit
Const OverwriteExisting = TRUE
Const NomeInput = "\\server_directory_speciale\"
Const NomeOutput = "\\server_directory_sito\vault\"
Dim CodiceFile
CodiceFile = TRIM(WScript.Arguments(0))
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile NomeInput & CodiceFile, NomeOutput & CodiceFile, OverwriteExisting
Wscript.quit


Se lancio il tutto da "http://localhost:2019/percorso/Documenti.aspx" tutto funziona bene mentre se lo lancio da "http://server_directory_sito/percorso/Documenti.aspx
mi dice

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ComponentModel.Win32Exception: Access is denied

Source Error:


Line 44: oProc.StartInfo.Arguments = "\\server_directory_sito\VBScript.vbs " & Codice
Line 45: oProc.StartInfo.FileName = "\\server_directory_sito\\Wscript.exe"
Line 46: oProc.Start()
Line 47: procID = oProc.Id
Line 48: oProc.WaitForExit()


Source File: c:\xxxx\yyyyy\zzzz\kkkk\Documenti.aspx.vb Line: 46

Stack Trace:


[Win32Exception (0x80004005): Access is denied]
System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) +1530
System.Diagnostics.Process.Start() +140

eccetera eccetera
Qualcuno mi sa aiutare?
grazie
A parte il fatto che se usi il copy da framework con Directory.Copy presente in System.IO, ottieni lo stesso risultato con molti meno problemi e passaggi. Comunque ovviamente se lanci la tua applicazione dalla macchina di sviluppo funziona perfettamente in quanto il tuo utente ha i privilegi di amministrazione, cosa che non avviene per il server in cui risiede IIS.

Devi cambiare l'utente!!!

imperugo
Microsoft MVP
myblog : http://www.tostring.it
4 messaggi dal 23 giugno 2006
Scusami ma non mi è chiara la tua risposta:
Il/i file/files che devo copiare risiedono su:
\\macchina_di_vault\directory\codice.estensione
l'unico utente abilitato all'accesso (fullaccess) è utente_speciale.
e li devo copiare su
\\macchina_iis\web_directory\directory_di_vault\codice.estensione
e li devo copiare su richiesta.

Sul server IIS ho pensato che usando utente_speciale, ossia lanciando lo script come utente_speciale avrei potuto eseguire la mia operazione.
Quindi quale utente devo cambiare e/o dargli i privilegi di amministrazione?
grazie comunque per l'altro suggerimento, lo esplorerò.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.