FfredrikMedlem sedan dec. 19991 072 inlägg Jag skickar behöver spara en fil till en upp-mappad enhet över nätverket.
Hur jag än bär mig åt får jag "A generic Error occured in GDI+".
Har försökt sätta rättigheter på "Intranet Zone" till "Fully Trusted" men det hjälper inte.
Nån som har några tips?
RrenholmMedlem sedan apr. 20012 266 inlägg Vad är det du försöker spara och hur, lite kod underlättar.
FfredrikMedlem sedan dec. 19991 072 inlägg Jag försöker spara en bild via Image-objektet.
<WebMethod()> Public Sub SetWebImage(ByVal imgBytes() As Byte, ByVal strImgName As String)
Dim imgObj As Drawing.Image
Dim memStr As IO.MemoryStream = New IO.MemoryStream(imgBytes)
Dim strFilePath As String = String.Concat(strFolderPath, strImgName)
imgObj = Image.FromStream(memStr)
Try
imgObj.Save(strFilePath)
Catch ex As Exception
Throw New Exception(ex.Message)
End Try
imgObj.Dispose()
End Sub
RrenholmMedlem sedan apr. 20012 266 inlägg
fredrik skrev:
Jag försöker spara en bild via Image-objektet.
<WebMethod()> Public Sub SetWebImage(ByVal imgBytes() As Byte, ByVal strImgName As String)
Dim imgObj As Drawing.Image
Dim memStr As IO.MemoryStream = New IO.MemoryStream(imgBytes)
Dim strFilePath As String = String.Concat(strFolderPath, strImgName)
imgObj = Image.FromStream(memStr)
Try
imgObj.Save(strFilePath)
Catch ex As Exception
Throw New Exception(ex.Message)
End Try
imgObj.Dispose()
End Sub
Testa detta sätt, tyvärr inte i VB.NET:
FileStream filestream;
try
{
filestream = new FileStream(strFilePath, FileMode.Create);
filestream.Write(imgBytes, 0, imgBytes.Length);
}
finally
{
filestream.Dispose();
}
OBS! Koden är otestad.
FfredrikMedlem sedan dec. 19991 072 inlägg Hej, tack för tipset, jag tror iof inte att det är något fel på själva koden här, för när jag använder en lokal sökväg på min lokala dator så funkar allt perfekt.
Det är alltså bara när jag försöker spara till en uppmappad enhet som det blir fel.
Fel-meddelandet är "A generic Error occured in GDI+" vilket man får om man försöker spara något till en mapp som inte finns, eller där man inte har rättigheter.
Jag kan också tillägga att det är en Webservice som försöker spara filen. Jag har satt att IIS.en ska använda samma användare som jag är inloggad med på datorn, alltså inte IUSR.n.
Om jag sparar filen direkt från mitt program till en annan enhet fungerar det också...alltså borde det ha nåt med webservicens rättigheter att göra...frågan är bara vad....
Tack på förhand!
RrenholmMedlem sedan apr. 20012 266 inlägg Om du kör domän kan du skapa ett domänkonto och sedan ge den rätt rättigheter på de olika nätverksenheterna och ställa in i Machine.config. Hur menar du med samma användare som är inloggad på datorn, menar du server eller klienten? eftersom på klienten kan det kanske inte fungera som vanligt när det är en webservice.
FfredrikMedlem sedan dec. 19991 072 inlägg
Hur menar du med samma användare som är inloggad på datorn
I detta fallet är denna datorn både klient och server.
Var i Machine.config kan jag göra de inställningarna?
RrenholmMedlem sedan apr. 20012 266 inlägg Här!
<!--
processModel Attributes:
enable="[true|false]" - Enable processModel
timeout="[Infinite | HH:MM:SS] - Total life of process, once expired process is shutdown and a new process is created
idleTimeout="[Infinite | HH:MM:SS]" - Total idle life of process, once expired process is automatically shutdown
shutdownTimeout="[Infinite | HH:MM:SS]" - Time process is given to shutdown gracefully before being killed
requestLimit="[Infinite | number]" - Total number of requests to serve before process is shutdown
requestQueueLimit="[Infinite | number]" - Number of queued requests allowed before process is shutdown
restartQueueLimit="[Infinite | number]" - Number of requests kept in queue while process is restarting
memoryLimit="[number]" - Represents percentage of physical memory process is allowed to use before process is recycled
webGarden="[true|false]" - Determines whether a process should be affinitized with a particular CPU
cpuMask="[bit mask]" - Controls number of available CPUs available for ASP.NET processes (webGarden must be set to true)
userName="[user]" - Windows user to run the process as.
Special users: "SYSTEM": run as localsystem (high privilege admin) account.
"machine": run as low privilege user account named "ASPNET".
Other users: If domain is not specified, current machine name is assumed to be the domain name.
password="[AutoGenerate | password]" - Password of windows user. For special users (SYSTEM and machine), specify "AutoGenerate".
logLevel="[All|None|Errors]" - Event types logged to the event log
clientConnectedCheck="[HH:MM:SS]" - Time a request is left in the queue before ASP.NET does a client connected check
comAuthenticationLevel="[Default|None|Connect|Call|Pkt|PktIntegrity|PktPrivacy]" - Level of authentication for DCOM security
comImpersonationLevel="[Default|Anonymous|Identify|Impersonate|Delegate]" - Authentication level for COM security
responseDeadlockInterval="[Infinite | HH:MM:SS]" - For deadlock detection, timeout for responses when there are executing requests.
maxWorkerThreads="[number]" - Maximum number of worker threads per CPU in the thread pool
maxIoThreads="[number]" - Maximum number of IO threads per CPU in the thread pool
serverErrorMessageFile="[filename]" - Customization for "Server Unavailable" message
When ASP.NET is running under IIS 6 in native mode, the IIS 6 process model is
used and settings in this section are ignored. Please use the IIS administrative
UI to configure things like process identity and cycling for the IIS
worker process for the desired application
-->
<processModel enable="true" timeout="Infinite" idleTimeout="Infinite" shutdownTimeout="0:00:05" requestLimit="Infinite" requestQueueLimit="5000" restartQueueLimit="10" memoryLimit="60" webGarden="false" cpuMask="0xffffffff" userName="machine" password="AutoGenerate" logLevel="Errors" clientConnectedCheck="0:00:05" comAuthenticationLevel="Connect" comImpersonationLevel="Impersonate" responseDeadlockInterval="00:03:00" maxWorkerThreads="20" maxIoThreads="20"/>