I have an ASP.NET Application compiled into installation package using INNO Setup installer. When I install an application to the dedicated server I want to precompile the whole application so it runs smoothly when first user arrives.
The problem is that only thing I know is the installation path. But what I need is the virtual path of the application in IIS to run this command:
aspnet_compiler -v AppVirtualPath
In my case, the application already exists in IIS and is mapped to the installation directory. I've been trying use the appcmd.exe to get virtual path by physical path. No luck so far.
Any suggestions would be greatly appreciated.
Related
Im trying to deploy asp.net mvc application to IIS on a remote PC with Fake.
I can build everything successfully. I also make nuget package of my webapp as Fake.Deploy
use nuget packages for deployment. but what should I add in my fsx script in nuget to stop IIS, then move the bin and content of a new site into virtual directory and then start IIS?
I dont want to use octopus deploy, so some fake script or cmd line would be just fine.
You can write any .NET(F#) code in *.fsx file.
As far as I know you should be able to reference FakeLib.dll and use all available helper functions
#r "FakeLib.dll"
open System.Diagnostics
open Fake
// Stop IIS process
Process.Start(ProcessStartInfo("iisreset.exe", " /stop"))
// Copy missing/updated files
XCopy "your source directory path" "your destination directory path"
// Start IIS process
Process.Start(ProcessStartInfo("iisreset.exe", " /start"))
I have a ASP.NET site running locally (localhost) on my Windows 7 computer. I have an error when loading one of the pages. The error is in an aspx.cs file and I can see how to fix it easy enough. But when I edit the source file nothing changes.
So I notice that on my machine the path to the file is C:\intetpub\wwwroot\folder\codefile.aspx.cs
But on the error message the path is e:\intetpub\wwwroot\User_Sites\folder\codefile.aspx.cs
I realize this must be a virtual directory used by the IIS (I assume) but cannot figure out why editing the code file on C: does not lead to it being loaded into the virtual directory when I run it.
I do not have a physical e: drive or User_Sites folder anywhere.
I realize this is probably a simple question but perhaps someone could point out a reference that explains this, or provide a simple explanation?
That means that the web server is using a version of the application that was built using the sources in e:... and not the version you are working on.
Try:
stopping the WWW publishing service
deleting the contents of C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
deleting the bin folder of your application
building the application
start the WWW publishing service.
After exploring Precompilation for Deployment topic I want to enhance my build process. Now, what I do is:
prepare web site using Web One Click Publish, for instance to c:\www\app directory, and that directory is available in IIS via app (localhost/app)
I launch aspnet_compiler.exe -v app c:\www\appprecompiled -f
Now I have ready precompiled application in c:\www\appprecompiled and everything is fine. However my application is quite big, and Publishing it (step 1) take about 5 minutes from scratch. So I wonder if it is possible to avoid step one , and perform step 2 (precompilation) with source folder pointing to solution folder. I tried something like this:
aspnet_compiler.exe -v codeapp c:\code\app -f
Where c:\code\app is the folder with web.config etc files, basically it's a project with web site and that folder is avaliable via http://localhost/codeapp.
But when launching that command, I get errors about missing global.asax or web.config errors:
C:\code\app\obj\debug\package\packagetmp\web.config(18):
error ASPCONFIG: It is an error to use
a section registered as
allowDefinition='MachineToApplication'
beyond application level. This error
can be caused by a virtual directory
not being configured as an
application in IIS.
And for the record, I use Application, not Virtual Directory.
So is there a way to perform precompilation on a plain web site folder?
I used
aspnet_compiler -p
physicalOrRelativePath -v / targetPath
from http://msdn.microsoft.com/en-us/library/ms227976(v=VS.80).aspx and removed obj folder prior to executing it, and precompilation works :)
I am creating a Flex project on my Windows machine but it will deploy on my Linux machine.
For application server type I selected PHP
I click next to go to the next screen.
I am then asked for Web root. I put in /var/www which is the web root of the linux server where the application will be.
I get an error telling me:
The selected web root folder does not exist.
Of course it does not exist on my windows machine, its on my linux machine. It will not let me click finish.
What do I do? do I have to author my Flex app on the same machine that it will be deployed? I hope not since I do not have a Linux version of Flash Builder.
edit:
By the way I am following this tutorial if it matters.
Use the web root on your windows machine. Sounds like Flex wants to know the webroot so it knows where the testing server is. If you do not have a webroot on your windows machine just install Wampserver or XAMPP
You can get away without installing a wamp server. just make sure the Web Root is a folder that acutally exists. then you can ftp the files over the linux machine for testing. Its easier to have the server on the same machine but whatever your preference is.
I’m trying to use a (VS 2008) Web Deployment project in a TFS solution to deploy the web site to the (TFS 2008) build server to run web based unit tests.
For some reason, that I can't yet figure out, it is failing to create the virtual directory:
Using "CreateVirtualDirectory" task from assembly "C:\Program Files\MSBuild\Microsoft\WebDeployment\v9.0\Microsoft.WebDeployment.Tasks.dll".
Task "CreateVirtualDirectory"
Initializing IIS Web Server...
C:\Program Files\MSBuild\Microsoft\WebDeployment\v9.0\Microsoft.WebDeployment.targets(667,5): error : Access is denied.
C:\Program Files\MSBuild\Microsoft\WebDeployment\v9.0\Microsoft.WebDeployment.targets(667,5): error :
Failed to create virtual directory 'abc'.
Done executing task "CreateVirtualDirectory" -- FAILED.
The TFSService user certainly is in the Administrators group on the TFS Build machine (which is running Windows Server 2008). I don’t know what else could be wrong. I’ve checked the event log an there’s no clues there. I am able to manually create the virtual directory on that machine through the IIS console with no problem.
Any ideas what could be the problem or suggestions for how to diagnose this further?
it has got to be permissions...did you try putting the TFSService in the same Groups you are in?
Is the TFS account running under the same privileges as the account that you use to connect to IIS? Do as Craig suggested and move the TFS account into the groups that you participate in.
You're sure that the build is running under the TFSService id and not under another id set up just for builds, and which may not be in the administrator's group? I haven't done more than just play with automated builds since I do mostly solo development, but I recall setting up a separate build id when I was looking at this.
I have seen this occur when the IIS server wasn't running on the default port. I'd recommend checking IIS to see if it's running on port 80 as a step to diagnose your issue further.
I eventually managed to get deployment working by calling the _CopyWebApplication build target of the web application from my TFS build script (after manually creating the IIS virtual directory).
I had to add an additional target though to get linked files in the project to be copied also as the built in _CopyWebApplication target doesn't include those.