Clearing out "temporary asp.net files"

来源:互联网 发布:网络运营计划怎么写 编辑:程序博客网 时间:2024/06/13 01:08

When I am testing out issues with ASP.NET dynamic compilation and shadow copying, I frequently need to ensure the contents of the "temporary asp.net files" folder have been removed so that I get a clean and consistent repro each time.

Normally I just do an IISRESET /STOP, delete the files manually and then do an IISRESET /START.

But I got bored of that so thought I would try to automate it with a command file.

First thought was to do a DEL /S "C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/*.*"

This worked, but left the directory structure in place.

So my next thought was to do an RMDIR /S /Q "C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files" and then just recreate the directory.

That certainly left me with an empty directory, BUT, the "NETWORK SERVICE" account under which my application pools usually run had no permissions to the newly created folder, so I got an "access denied" error as soon as I tried to browse an ASP.NET page.

Then I thougt I'd get clever and use the built in command line tool CACLS.EXE to give full control permissions to the built in IIS_WPG local group of which NETWORK SERVICE is a paid up member. (Any account you use as the identity for an application pool should be added to IIS_WPG rather than trying to give the account all the needed permissions directly. It's much simpler and more maintainable.)

What I didn't like about that was that CACLS.EXE does not appear to support a way of suppressing the "are you sure (Y/N)?" prompts.

So finally I grabbed a copy of XCACLS.VBS and got the following command file working:

 

iisreset /stop
rmdir /q /s "C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files"
rmdir /q /s "C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files"
md "C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files"
md "C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files"
xcacls "C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files" /E /G MYMACHINE/IIS_WPG:F /Q
xcacls "C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files" /E /G MYMACHINE/IIS_WPG:F /Q
iisreset /start

原创粉丝点击