The temp directory is hard-coded.
For .Net Framework 2.0 :
bootdrive:\%windir%\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
For .Net Framework 1.1 :
bootdrive:\%windir%\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files
This is a real hack, but it will retrieve the Temp directory path programmatically :
In global.asax :
Sub Application_OnStart()
Dim MyArray() As String = Split(AppDomain.CurrentDomain.DynamicDirectory, "\")
Application("TEMP_DIR") = (MyArray(0).ToString() & "/" & MyArray(1).ToString() & "/" _
& MyArray(2).ToString() & "/" & MyArray(3).ToString()) & "/" & MyArray(4).ToString() & "/" _
& MyArray(5).ToString())
End Sub
The path to the machine's ASP.NET Temporary Files directory
is now contained by Application("TEMP_DIR").
You can probably parse MyArray(), to extract the temp dir,
in a far simpler way, but I didn't have the time to do that for you right now.
What you need to do is strip off MyArray(6), MyArray(7) and MyArray(8) from the
string array created by Split(AppDomain.CurrentDomain.DynamicDirectory, "\").
Juan T. Llibre, asp.net MVP
aspnetfaq.com : http://www.aspnetfaq.com/
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
===================================
> Hi,
>
[quoted text clipped - 10 lines]
> Thanks,
> Rik
Rik Hemsley - 16 Feb 2006 14:06 GMT
> The temp directory is hard-coded.
Sorry, I meant the 'other' temp directory, not the 'Temporary ASP.NET
files' one. I'm not completely sure what this other directory is used
for, but I know that I need to give write access to it to the user who
the web application runs as, or I get 'permission denied' errors.
When a web _service_ is running, IO.Path.GetTempPath() returns (for me):
C:\DOCUME~1\RIK\ASPNET\LOCALS~1\Temp\
RIK\ASPNET seems to be name-of-machine\ASPNET, rather than username\ASPNET.
Looking at it again, I think it might be quite easy to work out what
this path will be, without having to be a web service, so I'll give it a
go and see if I can figure out a correct implementation.
BTW for anyone wanting to get the 'Temporary ASP.NET files' directory
from outside the web application, I do it like this:
String.Format _
( _
"{0}\Microsoft.NET\Framework\v{1}.{2}.{3}\Temporary ASP.NET Files", _
Environment.GetEnvironmentVariable("windir"), _
Environment.Version.Major, _
Environment.Version.Minor, _
Environment.Version.Build _
)
Cheers,
Rik