How do I create websites on remote servers using appcmd? - iis-7

I have used appcmd to create websites on my local computer. There doesn't appear to be a server parameter which means that i have to remote desktop on to each machine that i'm deploying to and run the appcmd command.
Also, can i use appcmd to deploy to IIS 6.0? If not, how do i deploy to remote IIS 6.0 web servers? I've tried the iisweb.vbs but i can't get it to run on my windows 7 computer because it can#t find the Microsoft.cmdlib. I have tired registering this file but it doesn't make a difference.

Using psexec.exe from sysinternals has worked for me to run appcmd on the IIS7 host from my administration host.

you can run a web service on the target machine, the web service should have the privileges
to add websites to the iis server (done by using System.DirectoryServices

After much searching of the internet i could not find an existing tool that needs to do what i need it to do. So in the end i had to create my own utility application that creates websites using WMI.

Related

Access IIS Dev. Server from Virtual Machine

I am running Visual Studio on my local Windows Server webdev machine. This launches an ASP.NET Development Server when I run my website.
I need to test this in various versions/browsers/tools and thus I'd like to access it from a VM, without having to deploy it each time I want to test something.
Therefore: is there a way to access my local ASP.NET server from my VM?
Can I use a reverse proxy or something for this? If so how? Why can I access the IIS7 welcome page but not the instance of my webserver on specific port?
Cheers
Edited to differentiate Cassini ASP.NET Dev. Server and IIS7.
I found a way to do this using Fiddler.
Basically you just create a reverse proxy on the dev. machine like so:
if (oSession.host.toLowerCase() == "192.168.0.100:8888") oSession.host = "localhost:41111";
Where my ASP.NET dev server (from VS2010) is running on localhost:41111 and I access it from other machines on the local network (or VMs) using 192.168.0.100:8888 (mydevhostip:8888) in a browser.

IIS6 isn't supported by powershell and upgrades cost money. Alternatives?

As part of our .NET deployment process we'd like to make a new website on IIS. The idea is to be able to run another set of smoke tests before making a site live - plus being able to immediately roll back to a previous version should something go wrong. We hope to have this all hooked up to Jenkins.
While IIS7 has a comprehensive suite of tools that allows us to throw together and configure a new website via PowerShell, IIS6 shares no such luxury.
While upgrading to IIS7 would obviously solve our issues, our servers currently run on Windows 2003.
Is there a way to do what we want in IIS6? Are we going about the issue the wrong way?
IIS6 configuration is stored in 2 xml files, MetaBase.xml and MSSchema.xml located in %SystemRoot%\System32\Inetsrv.
Check these links about available scripts for managing IIS sites, application pools etc:
Internet Information Services (IIS) 6.0 Resource Kit Tools
Managing IIS Configurations Using Scripts (IIS 6.0)
Administering Servers from the Command Line in IIS 6.0 (IIS 6.0)
How to manage Web sites and Web virtual directories by using command-line scripts in IIS 6.0
Regarding configuration of sites like default page, .NET version etc I couldn't find any script for that on Technet. But if it is in configuration xml, I think you can create some command line tool for that.

ASP.NET MVC intranet site deployment

Howcome I deploy my intranet ASP.NET MVC project?
What I've got so far:
project itself;
several client machines connected in a workgroup and server;
IIS Express 7.5, SQL Server 2008 R2 Express installed on a server.
It should be mentioned that though it's odd and unusual but server is just a machine without (even) server OS installed. Please note that it's not mine idea and is the environment I've got at the moment
I've read the instruction http://msdn.microsoft.com/en-us/library/gg703322(VS.98).aspx but it describes situation when you have Web Developer installed on the same machine.
Please help!
And Thanks!
This is the 100% manual approach, you might be able to access the remote web server via VS if authorization/permissions is lined up properly (much simpler, basically you just hit deploy):
Install IIS
Install .NET Framework 4
Install MVC
Register ASP.NET with IIS (just to be safe run it again)
Create Website via IIS Management Console (use a new directory for the website)
Put your files inside the new directory
Make sure permissions are setup properly
That's it

How to access ASP.NET App Over a Network Using IP Address

My asp.net web app is hosted on this URL on my local machine:
http://localhost:45433/
I want to access the same application from a different computer on the network. I tried replacing the localhost with my IP but it did not work.
any ideas!
UPDATE 1:
Now, I am getting this error:
Login failed for user ''. The user is not associated with a trusted SQL Server connection.
If your application is hosted using Visual Studio's built in web development server then this server does not allow remote connections. It is for testing purposes only and accepts connections only from localhost. In order to access your application from remote clients you might need to deploy it to IIS.
First, add the application as a virtual in IIS, and as long as you can access the machine on the network, you can do:
http://<machine name>/<virtual>
I do that at work, where I can access my co-worker's web site.
HTH.
That looks a lot like a url used by the development web server in visual studio. That web server only responds to requests from the localhost. It won't work for other requests from other machines on your network.
You need to install IIS on your machine (must be a Pro version of Windows) and deploy to that IIS install to share your app on the network.
I don't think the built-in version of Cassini (VS debug server) allows remote connections.
However, the UltiDev version, built off of the same code base with a few enhancements, does, and is a much lighter-weight install than IIS (especially if you can't find your OS install DVD). It also integrates nicely with Visual Studio for debugging purposes.

Can I access ASP.NET Development server in an intranet?

Im testing an ASP.NEt site. When I execute it, it starts the ASP.NET Development Server and opens up a page.
Now I want to test it in the intranet I have.
Can I use this server or I need to configure IIS in this machine?
Do I need to configure something for it to work?
I've changed the localhost to the correct IP and I opened up the firewall.
Thanks
Yes you can! And you don't need IIS
Just use a simple Java TCP tunnel. Download this Java app & just tunnel the traffic back.
http://jcbserver.uwaterloo.ca/cs436/software/tgui/tcpTunnelGUI.shtml
In command prompt, you'd then run the java app like this... Let's assume you want external access on port 80 and your standard debug environment runs on port 1088...
java -jar tunnel.jar 80 localhost 1088
(Also answered here: Accessing asp. net development server external to VM)
No, you can't. It's set up so it only works on localhost, and I couldn't find any workarounds to make it work.
But, here's what I've been doing - I created the website on a specific port in IIS and opened that port up so it's visible on the network. I pointed that IIS website to my website's root folder (the one with web.config in it). Then I continued to use the ASP.NET Development server on that local machine while developing - both IIS and the ASP.NET Development Server can access the files at the same time (unless you're doing something wacky).
Let me know if there's a challenge with running IIS on your machine and I'll update my answer.
I realize this isn't a direct answer to your question, but an alternative to debugging using the ASP development server is to attach to the IIS process: How do I attach the debugger to IIS instead of ASP.NET Development Server?
Nope, stupidly (IMHO) there's no way to get the default ASP.net development server to serve pages to IPs other than localhost. What I did was to use UltiDev Cassini which is very quick to set up and is basically a version of the ASP.net development server compiled by UltiDev, and it will serve pages to any IP address.
Just for those who don't want/cant set up IIS for whatever reason...
Use fiddler or similar on your host - set your browser on the client VM to use the proxy then just use localhost:dev_port as usual on the client.
All requests from the client goto the proxy on your dev machine which routes to localhost on the dev machine and the ASP.net dev server thinks the request is from your dev machine!
You can recompile Cassini to get it to work - there's a fairly easy to remove check for localhost in there. Or, I'm pretty sure Ultidev's Cassini doesn't have this restriction. Both of these are easier to setup than IIS.
But, yeah, the builtin WebDev.WebServer doesn't work....Hmm, unless you run something like AnalogX's Proxy on your dev box and point it to the WebDev port. That should work (though I haven't tried it, it should take < 2 mins to setup).
You can use Cassini to expose your web apps externally. You just need to proxy the connection. I wrote a simple program to do this that you can run in another VS instance. Just change the port to match the port Cassini is using.
https://gist.github.com/945649
You can do port redirection using SOAP Toolkit 3.0
Once installed, go to My Programs > Microsoft Soap Toolkit 3 > Trace Utility
Once Trace Utility opened, go to File > New > Formatted Trace
In the dialog insert your ASP .NET Development Server port in Forward To Destination Port field.
It's only a workaround for testing purposes
I believe the built in ASP.NET server only works on localhost. You'll have to use IIS.
Compile all you website in Debug mode, then create the website and publish it in IIS (make sure you can view it from other machine). Then attach the VS2010 Debugger to the process with the AppPool of your website (the process is called w3wp.exe when IIS>v5 and aspnet_wp.exe when IIS<5).
If you make some changes, just replace the package contents on the physical path of the website, and there you go again.

Resources