HTTPS with Visual Studio's built-in ASP.NET Development Server - asp.net

Is there a way to access Visual Studio's built-in ASP.NET Development Server over HTTPS?

As of now we can use IIS Express to develop and test in SSL. Here is a complete article explaning how to use IIS Express and Visual Studion 2010 to develop websites in SSL.
Next
Then you will get this
Working with SSL at Development Time is easier with IISExpress
Introducing IIS Express

Cassini does not support HTTPS.
However, you can use IIS to do this, if your using IIS 5.1, download the MS IIS toolpack for IIS 6.0, it comes with a tool to create self signed SSL certificates. This works on IIS 5.1
http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499&DisplayLang=en
The one tool you need (SelfSSL.exe) works just fine with IIS 5.1. Unfortunately, it comes bundled with a bunch of other stuff.
Steps:
Install the IIS Tools File. If you want, you can click Custom and tell it to only install SelfSSL.
Activate the site in IIS that you want to install a SSL certificate too.
Go to Start / Programs / IIS Resources / SelfSSL
This will launch a command prompt in the SelfSSL directory.
Using the provided help, run SelfSSL. The command I used was: selfssl.exe /N:cn=[MACHINENAME] /K:1024 /V:90
/S:5 /P:443
The /S switch indicates which site to install the certificate. You can figure out the number by looking at your sites in IIS and counting (Starting at 1 for the first site, not 0), to the site you want.
Once this has ran, browse to your localhost over HTTPS
You should receive an error message stating that this certificate is from a untrusted source. You can either add your machinename to the browsers “Trusted Authorities” list, or you can tell the browser to ignore this.
At this point, you will be able to run your localhost over HTTPS.

Wilco Bauwer wrote a webdev server that will support https. He is one of the developers that worked on cassini visual studio 2005 built in web server. WebDev.WebServer2

Select the project-file in the Solution Explorer: for example: "WebApplication1".
With pressing ALT+ENTER you enter the project-properties.
Select "DEBUG" on the left side.
Here you can select "Enable SSL".
Then you can start your project with IIS Express normally and it will start using SSL, the new Port will be 44301

Related

How to configure Web Deploy publishing feature on IIS so developer can publish?

I control a server running IIS 8 on Windows Server 2012. I want to publish a few basic asp.net websites with the Publish option in Visual Studio 2012. There are no good/current Microsoft articles on the server configuration steps.
1) What exactly do I need to do on the server? I don't see any "web deploy" role option under the various IIS roles. I have read of some people downloading and installing "Web Deploy 3.0" from Microsoft but that file is one year old and it seems strange that I would have to download another file to use a promoted IIS file deployment option. If you are using IIS7 or IIS7.5 instead of IIS8 like me, please feel free to reply what YOU do, but let me know what version you are using.
2) Is the authentication process encrypted? For example, FTP would send passwords in plain text. FTP over SSL doesn't but setting up even a self-issued SSL cert is annoying just to get secure authentication. So what about Web Deploy? Is it safe or no?
3) Must I open port 8172 on the server's firewall? Microsoft's documentation says I "might need to".
4) On the Visual Studio side, it wants an account for authentication. Is this a Windows account on the server? Should I then right click the IIS website folder on the server and add this user there or is there some other preferred way of mapping users to websites? If so, what rights are required?
Please answer any or all of the above but please focus on the server side configuration and not the client (visual studio). Please don't suggest FTP as I am truly wanting to try Web Deploy. I am adding an IIS 7.5 tag too since some of the answers may be the same as for IIS 8.
It appears that one must still download the Web Deploy extension. Also, Version 3.5 is now available.
To download on a server, default IE security rules will require you add something like http://*.microsoft.com as a trusted site else you can't download the installer.
The whole package is rather large in its purpose and covers many deployment/backup/transfer type scenarios for IIS. So, when you install it, it turns into "Web Platform Installer 4.6" and installs roughly 10 prerequisites in addition to Web Deploy 3.5. Those prerequisites covers CLR Types, SQL Server framework (even if you don't have SQL Server installed), SQL Server shared management objects, etc. I did check afterwards if all these items are uninstallable through control panel (in case I changed my mind about web deploy) and they are there.
Finally, to configure web deploy on a site, I found this document:
http://www.iis.net/learn/publish/using-web-deploy/configure-the-web-deployment-handler
To find more information about this, google "web deployment handler".
It also does appear that you can configure secure authentication, which is the main reason I went down this Web Deploy publishing path instead of using plain clear-text FTP. However, http://www.iis.net/learn/publish/using-web-deploy/introduction-to-web-deploy says
Web Deploy is secure. Web Deploy supports transfer over HTTPS. Note that variants of FTP such as SFTP and FTPS are also secure.
I'm not sure if this means I will have to use an SSL certificate anyway. I was hoping Web Deploy provided more authentication options that were both secure and didn't need a certificate.
The answer marked correct pointed me in the right direction to publish a web site from Visual Studio 2013 to Server 2012. The Validate Connection button kept stating check Web Management service is installed.
As of April 2014 these simple steps work:
Install Web Deploy
http://www.iis.net/downloads/microsoft/web-deploy
In Powershell:
(from: https://www.orcsweb.com/blog/jamie-furr/manage-and-install-iis8-on-windows-2012-server-core/)
Install-WindowsFeature Web-Server
Install-WindowsFeature Web-Mgmt-Service
Set-ItemProperty -Path
HKLM:\SOFTWARE\Microsoft\WebManagement\Server -Name
EnableRemoteManagement -Value 1
Net Stop WMSVC
Net Start
WMSVC
netsh advfirewall firewall add rule name=”Allow Web
Management” dir=in action=allow service=”WMSVC”
In IIS:
(from
http://blog.richardszalay.com/2013/02/02/building-a-deployment-pipeline-with-msdeploy-part-4-server-configuration/)
Create a new non-admin user
Once your user is created, we need
to grant it permission to deploy the site. Right click on your
website and select “Configure for Web Deploy Publishing…” from the
“Deploy” sub menu

Deploy a server with VS Express

I am trying to deploy a server that I can hit from a different computer in my office. I only need one, two computers to hit it max. I am using Visual Studios Express 2012 RC for Web and have the whole website made, but I can't figure out how to actually deploy it. When I click play to debug it (after I have told it to build the web site) it brings it up on my computer that I built the server on but I can't hit it from another computer. The address it gives me on the browser is localhost:XXXXX. I know local host means that computers IP and I have tried that repeatedly. I am stumped. Please help. I thank you for any help you give in advance. Also if you need more information please feel free to ask.
You can't run it from Visual Studio Express, you have to deploy the web application to an IIS server. You can't access the site if VS is not running, because it creates a local, specialized development server when you start the application, whether with debugging or not. You need to configure IIS on your web server. What is the OS? Once you go through a tutorial to set it up, you will copy your code to an application folder that will be created for you. The details vary by IIS version.
Internet Information Services (IIS) – formerly called Internet
Information Server – is a web server application and set of feature
extension modules created by Microsoft for use with Microsoft Windows.
IIS 7.5 supports HTTP, HTTPS, FTP, FTPS, SMTP and NNTP. It is an
integral part of the Windows Server family of products, as well as
certain editions of Windows XP, Windows Vista and Windows 7. IIS is
not turned on by default when Windows is installed. The IIS Manager is
accessed through the Microsoft Management Console or Administrative
Tools in the Control Panel.
http://en.wikipedia.org/wiki/Internet_Information_Services
http://www.iis.net/

URL rewrite rule not working in Visual Studio Development Server

How can I troubleshoot url rewrite rules that are not working in my Visual Studio 2010 Development environment?
I am enhancing an existing ASP.NET application.
My issue is the URL rewrite rules written in web.config do not work in my Visual Studio 2010 development environment. It only works after deploying the project to IIS.
I need to debug the project as I am not familiar with how it is designed and developed. It is too big a project.
If rewrite won't work in the Visual Studio Development Server, is there a workaround? I really need to work on the project in debug mode. Every time it takes me to a custom error page.
You can always debug into your local IIS. There are 3 approaches:
You should be able to do this seamlessly if your project is configured to deploy to the local IIS web server - just hit F5. It should deploy then attach.
After you deploy, browse to the local site, then attach to the running site by using "Debug, Attach to Process, w3wp.exe".
Add System.Diagnostics.Debugger.Break() to the line on which you want to break your code, deploy to IIS, then run. A "start debugging" dialog should appear when the line is hit.
URL Rewrite does not work on the built in web server used by Visual Studio. The good news is that you can absolutely debug the site easily using a local install of IIS. See the following blog entry for details on how to do this:
http://weblogs.asp.net/scottgu/archive/2010/06/28/introducing-iis-express.aspx
I would strongly suggest going the route of IIS Express (a quick web search will get you to the download page) that Scott recommends. I tried setting VS up to use my local IIS 7 and struggled with it. When I tried the IIS Express route, I was up and running in minutes with URL Rewrite working nicely in my dev environment - no need to manually attach to anything. After installing IIS Express, I just had to go into the site properties->"Web" tab->"Servers" heading->select "Use Local IIS Web server" and check "Use IIS Express".
If you create an IIS website on your local machine then rewrite should work.
If you don't have IIS installed I think you can download it using the MS Web Platform Installer.
I'm not sure if the debugger will work in this situation, but at least you don't have to deploy to a remote machine to test your changes.

How can I reach my ASP.NET project with my smartphone?

I have an ASP.NET project which developed in visual studio 2010 on my computer.
I can open its pages using address like : localhost:52413/Default.aspx .
I want to reach that page from my smartphone which is connected in same wireless network. How can i do that. First of all i tried 192.168.2.2:52413/default.aspx
What should i do?
If you are using the Visual Studio built-in development server, then you are not going to be able to open the website on another computer (or smartphone). This web server is bound to localhost. But you have three options to test your website on your smartphone:
Use IIS Express
Install IIS Express
Change project settings to use IIS Express instead of the built-in web server
Configure IIS Express to listen to remote requests.
Use IIS
Install IIS
Change project settings to use IIS (instructions for Visual Studio 2008, mostly the same in Visual Studio 2010)
Transfer your files to a web host where you have a domain name and hosting contract
For 1. and 2. you probably also need to configure your local machine's firewall to allow incoming traffic.
This can be done quite easily using Fiddler.
www.fiddler2.com
First download and install Fiddler.
Start the program and select "Tools" -> "Fiddler Options" from the menu.
In the options dialog select the "Connections" tab and check "Allow remote computers to connect".
A 'restart required' dialog may appear.
Now select "Rules" -> "Customize Rules" from the menu.
This opens a text file called "CustomRules". At the end of the "OnBeforeRequest" method (around line 188 or so) add the following:
if (oSession.host.toLowerCase() == "192.168.2.2:8888")
oSession.host = "localhost:2000";
Save the file. Close it. Restart Fiddler.
Start your web application (I usually configure the web site with a static port) like normal and verify that it's viewable on the computer through localhost:2000 (or whatever port number you have decided to use. It must match what you entered in "CustomRules", though).
Now you should be able to browse the web application from any device on your lan provided firewall and such let you by pointing a browser to http://192.168.2.2:8888
Maybe the firewall on your computer is blocking connections to port 52413. Try turning off the Windows Firewall to see if that helps.
local development server can be use only from local machine, publish to your app to or you can install UtilDev Web server (former Cassini)

Problems running ASP.NET application with IIS

I have written a small ASP.NET application. It runs fine when running it with the small IIS installation that comes with Visual Studio 2005, but not when trying with IIS. I created the virtual directory in IIS where the application is located (done it though both IIS and VS 2005), but it does not work. In the beginning I thought it might be caused by the web.config file, but after a few tests, I think that the problem lies with IIS (not certain about it).
Some of the errors that I get are
Unable to start debugging on the web server. The underlying connection was closed: An unexpected error ocurred on a receiver. Click help for more information
Can anybody give me a suggestion of what to try next?
Have you run aspnet_regiis?
Here's an overview site for different IIS versions setup and should help if there are other questions/issues
Try reinstalling aspnet_regiis.exe.
If you are using .net frameworkype 4.0 and using 64 bit system,
Go to Run, Type cmd and Command Prompt will be up, then type
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
If you are using 34 bit system,
Go to Run Type cmd and then type
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
The site won't load at all or you can't debug remotely?
Some thoughts:
Make sure you've got debugging enabled in your web.config, if you're trying to debug. Otherwise, build in 'Release' mode.
Make sure your project is set as an application, and is running as the correct version of .NET
More description of your setup and the error message would be useful.
Make sure that the customErrors is set to off in the web.config. That should show the actual exception.
Make sure that your virtual directory in IIS is set to the correct version of the .NET framework.
Look at the properties in the virtual directory and see that the correct default documents are the ones that you are using in your dev project.
Also look at the url headers for the website in IIS.
On some of our servers we have both versions of the .NET framework. In IIS I typically have to set what version the virtual directory should be using. This can cause problems running it on the server.
First make sure you have installed and configured IIS server. To check whether IIS server is installed: Run->inetmgr press enter.
To know how to install and configure IIS server check the following Link:
http://chalaki.com/install-iis6-windows-xp-professional-sp3-setup-run-csharp-cgi/425/
To develop Website using Visual developer with IIS instead of "default ASP.NET Development Server", In the new website window under "Location" click on "Browse" to see the different Server options including IIS Server. User can select the server as IIS server instead of "File System", then the "Location" option will be "HTTP" instead of "File System".
In Visual developer 2008 under Properties->Start Option->Server->"Use local IIS server" option is not shown, Even though IIS server was installed and configured successfully. the only options shown are "use default server" and " Use custom server with base URL".
So in Visual developer 2008 to run on IIS server(If IIS server is installed), Need do the following:
New Website -> Under Locations Click on "Browse" -> Click on "Local IIS" and then select the "IIS Virtual Directory"(IIS vitual Directory which is directory created by the user while configuring IIS server) -> Open
While Running/debugging, the server which you selected while creating the website, the same server will used to open the website, that is while creating the website if you selected "IIS Server" then the website will be opened though IIS server.
One more thing is, while installing Visual developer 2008 and IIS server, If you installed IIS server after installing Visual studio then you need to do the following before creating new website:
Run ->cmd press enter (then enter the following Command)-> C:\WINDOWS\Microsoft.NET\Framework\Version# aspnet_regiis -i press Enter then you get message after 3 seconds "ASP.net was installed successfully".
(*Version# will be v2.0.50727 in most cases)

Resources