Using WMI within a powershell script, how can I set the .NET runtime version of a virtual directory targetting IIS 6? I want to be able to set it to use .NET 4.0.
Many thanks
You will have to update the ScriptMaps. Take a look at the VBScript sample
I don't have any access to my code from here, but ...
Manually configure one site to the .NET 4.0 maps
WMI get ScriptMaps from that virtual directory
WMI get the virtual directory you'd like to update (iteratively)
WMI set target.ScriptMaps = source.ScriptMaps
Commit your changes.
Related
I've moved my classic asp app to win 2012 R2 (IIS 8.5). This app uses COM component. I've registered this component using regsvr32 and also exported older components from II 6 to II 8.5. I can see those components in control pane->component services.
This app is not working properly. Code include Server.CreateObject("myCOM"); looks like it works but when I try to get objArgs["prop1"]; it doesn't work.
I see this error:
"Server.CreateObject failed while checking permissions. Access is
denied to this object."
What could be potential issue?
PS: I've installed ASP/server side includes & others.
What are the permissions on the DLL set to? That is, can the user that IIS is running as access the file?
Did you register it as both 32- and 64-bit?
Can you create the object from a test VB script (running from an elevated command prompt, creating from a VBS script or a PowerShell script)?
"Access Denied" usually means exactly what it says on the tin. I'd guess that the IIS user (or that used by the app pool for your site) doesn't have correct permissions on the DLL.
I am having similar problem trying to run an ASP site using ASPMail with PGP on Windows 2012R2. The mailer runs fine, and PGP works if I run it inside PowerShell, but the mailer can no longer use its PGP option, which is running pgp.exe from inside an ASP page.
Turn on ASP from Internet Information Services -> World Wide Web Services -> Application Devlopment Features -> ASP.
After migrating TeamCity from one server to another, and also switching to Visual Studio 2013, our build fails when using MSDeploy to push a TC-built .zip package to IIS.
The application pool that you are trying to use has the
'managedRuntimeVersion' property set to 'v4.0'. This application
requires 'v4.5'
This is a strange error since my IIS server has .NET 4.5 installed and has been happily running and being deployed to for weeks, and a 4.0 application pool will run a 4.5 targeted app.
Unfortunately, the waters are muddied by the changes to TC and VS (2013) so what caused the issue I cannot be sure of.
Note: Our TC server only has Visual Studio 2012 on it, since I'm on MSDN and got early access to 2013. This could be the culprit, but doesn't make the issue any less odd.
I'd prefer not to disabled .NET runtime version checking at all (with IgnoreDeployManagedRuntimeVersion), but instead implicit set runtime version via DeployManagedRuntimeVersion:
<DeployManagedRuntimeVersion>v4.0</DeployManagedRuntimeVersion>
Some more details: http://techblog.dorogin.com/2013/11/deploying-45-projects-with-webdeploy.html
Open your .csproj file and set the following element:
<IgnoreDeployManagedRuntimeVersion>True</IgnoreDeployManagedRuntimeVersion>
Adding it just above this element helps readability:
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
Kudos to https://stackoverflow.com/users/1769923/abhishikt-n-jain for answering with this little-known config setting here:
MSBuild deploy failing after upgrade to .NET 4.5
If anyone knows why this happens, please feel free to add an answer.
Update
Disregard my comments below. While it got me past the deploy, I got a 503 Service Unavailable when I actually tried to run the web app. I backed out this change by setting the managedRuntimeVersion property back to v4.0 and added the IgnoreDeployManagedRuntimeVersion to my project. Then the deploy succeeded and the app worked. Dumb...
This happened to me after I installed .NET Framework 4.5.1 on a Windows Server 2008 R2 SP1 machine (as part of upgrading Powershell).
The IIS user interface on Windows Server 2008 doesn't give the option of setting the managedRuntimeVersion property to v4.5 even after that version is installed. However, this can be done on the command line using the appcmd utility as #3boysdad's answer shows.
appcmd is the command-line equivalent of managing IIS sites, apps, apppools, etc. It is located at %systemroot%\system32\inetsrv\appcmd.exe but it is not on the PATH as the following link explains:
http://www.iis.net/learn/get-started/getting-started-with-iis/getting-started-with-appcmdexe#HowToUse
I'm of the opinion that modifying your project (via the IgnoreDeployManagedRuntimeVersion or DeployManagedRuntimeVersion properties) is sub-optimal. The application pool should be set to use v4.5, and the only way to do that on Windows Server 2008 is to use the appcmd utility. #3boysdad's answer should be the accepted answer.
found this gem while hunting around for this same problem.
appcmd set apppool /apppool.name: <your app pool> /managedRuntimeVersion:v4.5
this will need to be executed in your \System32\inetsrv directory.
I have a project which I have upgraded to .Net 4.0, but when I try to access it, I retrieve the following error:
HTTP Error 404.2 - Not Found
The page you requested could not be displayed because of the settings for the list of ISAPI and CGI restrictions on web server.
ErrorCode: 0x800704ec
Handler PageHandlerFactory-ISAPI-4.0_32bit
Do I need to do something extra to the IIS 7 or APP pool, when converting an existing site to a .NET 4.0 site?
Also if I look at ISAPI both 32bit and 64bit of the .Net 4.0 is installed.
In IIS, enable .NET 4.
Here is image:
I take it you're running on IIS6 right now..
Open the IIS manager, and go to the Web Service Extensions area.. You'll be able to enable .NET 4 in there.. All new extensions are disabled by default :)
If you're running on IIS7, .NET might not have registered in IIS.. Then open up an admin command prompt and navigate to the .NET 4 framework folder (C:\Windows\Microsoft.NET\Framework\v4.{version}). If you're on a 64 bit machine go to the Framework64 folder instead of the Framework folder.
Then run aspnet_regiis -i in there
I had this same issue. Strangely, for me it would run in integrated mode but not in classic mode for .NET 4. After enabling the .NET 4 extensions via the Isapi and Cgi restrictions section in IIS 7, it then began working in both modes. The Isapi and Cgi restrictions section is located at the server level node in IIS manager. This option should not be confused with the Isapi Filters section at the site level.
I have just finished the development of a web service application in visual studio.
Is there an easy way to wrap it in an installer, so that I can just ship it off to technical support, and they can have a wizard based installer that will fully setup an IIS site for them, either in 6 or 7?
You can use Visual Studio's built in setup project. I've only tried this once on a test project, but it created all the necessary stuff in IIS 6 just fine.
I would suggest you export the IIS METABASE for your local instance of the service and then this can be imported into a new server to create the correct IIS configuration. Have a look at Copying IIS Configurations using iiscnfg.vbs The METABASE is just an XML file and you will easily see the specific values that allows you to edit them should the deployment be different in anyway.
What install tool can I use to create Virtual Directory on IIS? OpenSource, free or to do in C#.
WiX can create IIS virtual directories.
You can create IIS virtual directorys using NAnt and the MKIISdir task in the NAntContrib project
You can use the VS.NET Web Setup Project included into visual studio.
Check this article for a list of deployment possiblities for your web app :
You could use Microsoft Web Deployment Tool to recreate a website structure.
you can call a small VBScript from any installer via command line, and access the IIS object.
Set objMimeMap = GetObject("IIS://localhost/w3svc")