How to allow remote access to Visual Studio 2013 web debug - iis

I am developing a Web API project in ASP.Net using Visual Studio 2013.
When I click debug it launches the website in IIS and displays it in Chrome browser. However, I cannot access it from another device.
I need to access the API from my mobile device for testing purposes. How can I perform remote debugging in Visual studio 2013?

there were few posts concerning this topic here (one, two). I faced the same problem recently and the most sufficent post I found was this one.

Your device is running under AVD emulator ?
I suggest follow this steps:
Install IIS
Configure Visual Studio to use local IIS (Page properties in your Web Project)
Create a exclusive AppPool in IIS to work with your application
In my Project I'm using Oracle Client and must be 32bits (64 bits don't works with Visual Studio) then I need allow 32 bit in Application Pool
Configure the Windows firewall to allow request in port 80 (inbound rules)
In your device use the intranet IP DON'T USE LOCALHOST OR 127.0.0.1, because some emulators works under another IP

From Handling url binding failures in IIS Express:
Serving External Traffic
To enable your website to serve external traffic, you need to configure HTTP.sys and your computer's firewall. From an elevated command prompt, run the following command:
netsh http add urlacl url=http://myhostname:8080/ user=everyone
After configuring HTTP.sys, you can configure IIS Express to use port 8080 by using WebMatrix or Visual Studio 2010 SP1 Beta+, or by editing the applicationhost.config file to include the following binding in the sites element. (Replace myhostname with your computer's domain name).
<binding protocol="http" bindingInformation="*:8080:myhostname"/>
You will also need to configure the firewall to allow external traffic to flow through port 8080.

Related

Unable to remote debug asp.net mvc core application on IIS8 (AWS EC2)

I have an MVC core website written in C# which is deployed to an AWS EC2 Instance with Windows Server 2012 R2 and IIS8 deployed on it.
I am trying to remote debug the application as I am getting errors thrown which I don't when running locally (details for another post maybe).
On AWS Console, I have a security group with the following Rules as guided by here:
and when I click on Debug->Attach to process, and browse to my AWS instance, I can see the correct dnx.exe process, however, when I attach to that process,
I get the The breakpoint will not currently be hit. No symbols have been loaded for this document
I've tried going to Tools->Options->Debugging->Symbols and clicking Load all symbols as it is my understanding that since VS2012 the symbols do not need to be deployed, but rather just on the local machine doing the debugging, taken from here.
In versions of Visual Studio before VS 2012, debugging managed code on a remote device required that the symbol files were also located on the remote machine. This is no longer the case. All symbol files must be located on the local machine or in a location specified in the Debugging / Symbols page of the Visual Studio Options dialog box. See .NET Remote Symbol Loading Changes in Visual Studio 2012 and 2013 on the Microsoft Application Lifecycle blog.
I can see the connections being initiated in the MSVSMON process on the EC2 instance.
I feel like I'm close but I'm just missing one simple thing.
You need to check on which port the Remote Debugger is running and allow inbound traffic on that port by opening Inbound Port [4024 in my case] with a Custom TCP Rule for Remote Debugging.
You can check the port used by Remote Debugger at Tools > Options in the Remote Debugger Menu.

Debugging multi-site web applications in Visual Studio on Windows 8.1

I have a multi site Azure based web application. One site contains the web pages (with the view functionality driven through jQuery, Raphaël, and HTML) and a thin WCF service. The second site contains a more functional WCF service which in turn calls the data objects that call the database. We stopped development on the site a few years ago but it is still live for the few people who still enjoy using it.
Yesterday I had to fix an cross-site scripting vulnerability someone had reported on the site.
I was alarmed to find that I can no longer run the sites on my local machine under Visual Studio to test and debug any changes before deploying them to Azure.
Because of the interaction between the two WCF sites I had the local debugging set up as follows:
In the Internet Information Services Manager tool (InetMgr) I add additional websites with their physical path set to the location of the source code in the TFS local path on my machine.
I edit the host name in the site's binding to mimic the Azure location, i.e. the main site is projname.cloudapp.net:80 on Azure and projnamelocal.cloudapp.net:80 in my local IIS and the data WCF site is projname-wcf.cloudapp.net:8080 on Azure and projname-wcflocal.cloudapp.net:8080 in my local IIS. (N.B. The main site has a HTTPS binding too.)
I edit C:\Windows\System32\drivers\etc\hosts to include the lines
127.0.0.1 projnamelocal.cloudapp.net
127.0.0.1 projname-wcflocal.cloudapp.net
In Visual Studio I edit the web properties for the main site's project so that it uses the local IIS and project URL http://projname.cloudapp.net/ and I have a switch (in the code to say whether to call the local WCF or the live Azure one.
In the past when the project was under active development this set-up worked fine for locally testing and debugging. Yesterday it failed, one one machine http://projnamelocal.cloudapp.net/ gave a 503 error on another a 404. (N.B. I can ping each URL from the command line so the hosts redirect is working.) Visual Studio complains that it is "unable to start debugging on the web server" and that it "could not start ASP.NET debugging".
I've tried all the suggestions and some:
Running without debugging
Running Visual Studio as administrator (I was already)
Re-registering ASP
Changing the app pool
Giving everyone full permissions to the code directory
Running as my own domain account that is an admin on the local machine
Changing IE to not auto-detect proxies
Adding the sites to IE's list of trusted sites
Turning off IE's protected mode
Restarting Visual Studio
Restarting the PC
Restarting the PC again
How should I set-up this style of running, testing, and debugging local sites work in IIS under Visual Studio?
Got it.
I had forgotten to go to Control Panel > Programs > Turn Windows features on or off > .Net Framework 4.5 Advanced Services > WCF Services > HTTP Activation
Now that I have that installed the local sites start

HTTP Error 404.3-Not Found in IIS 7.5

I'm using IIS 7.5 on Windows Server 2008 R2 x64 Enterprise Edition. In the project we have developed with ASP.NET 4.0 we used WCF Service. But it doesn't run over domain when the software is running from local computer. Otherwise, I am getting the following error:
HTTP Error 404.3-Not Found
The page you are requesting cannot be served because of the extension
configuration. If the page is script, add a handler. If the file should
be downloaded, add a MIME map.
You should install IIS sub components from
Control Panel -> Programs and Features -> Turn Windows features on or off
Internet Information Services has subsection World Wide Web Services / Application Development Features
There you must check ASP.NET (.NET Extensibility, ISAPI Extensions, ISAPI Filters will be selected automatically). Double check that specific versions are checked. Under Windows Server 2012 R2, these options are split into 4 & 4.5.
Run from cmd:
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir
Finally check in IIS manager, that your application uses application pool with .NET framework version v4.0.
Also, look at this answer.
In my case, along with Mekanik's suggestions, I was receiving this error in Windows Server 2012 and I had to tick "HTTP Activation" in "Add Role Services".
In windows server 2012, even after installing asp.net you might run into this issue.
Check for "Http activation" feature. This feature is present under Web services as well.
Make sure you add the above and everything should be awesome for you !!!
I was having trouble accessing wcf service hosted locally in IIS. Running aspnet_regiis.exe -i wasn't working.
However, I fortunately came across the following:
Rahul's blog
which informs that servicemodelreg also needs to be run:
Run Visual Studio 2008 Command Prompt as “Administrator”.
Navigate to C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation.
Run this command servicemodelreg –i.

Development in IIS or Visual Studio internal webserver

Do you do local development/debugging with the internal webserver or a local iis install? I'm currently running the internal VS2010 webserver but it's so slow it hurts. I can see the page rendering in front of me...
I prefer to use Windows Server 2008 as my development machine so that I can use IIS 7 as the web server and just set the default location of the website to a locally mapped DNS name. This especially helps when testing code that is dependent on domain URIs and other information of that nature.
One problem I have experienced is an intermittence in the ability of studio to bind the debugger to the IIS processes. (sometimes a reboot is required to get studio to bind if this happens)

VS2010 throws exception while opening project

When I try opening a project I get an exception saying Web application is configured to use IIS.
Error : The Web Application Project EntityServices is configured to use IIS. To access local IIS Web sites, you must install the following IIS components:
IIS 6 Metabase and IIS 6 Configuration Compatibility
In addition, you must run Visual Studio in the context of an administrator account.
NOTE - I have already installed IIS 7. My box is a x64 bit Windows 7 box.
Go to Control Panel, Programs and Features, Turn Windows Features On or Off, and enable IIS 6 Metabase and IIS 6 Configuration Compatibility.
Have you installed IIS6 Metabase support? It is a seperate install from IIS7, although in the same area.
Turn Windows Features ON and OFF -> IIS Services-> Web Management Tools -> IIS Management Compatibility and check IIS Metabase and IIS 6 configuration Compatibility
This also happened to me when I had reconfigured the TCP Port on IIS to port 81. I was running TCPTrace, capturing traffic on port 80 and forwarding it to IIS at port 81.
After a reboot, I had to reconfigure IIS' TCP Port to 80 and the problem was resolved.
I got the same error the solution is that you should open with notepad (web project)it's csproj file and remove this tag
<UseIIS>True</UseIIS>
you need to turn on asp.net :
controlpanel- Turn Windows Features ON and OFF -> IIS Services-> www- > application Dewvelopment features check the asp.net on
In my case (Same error)
i solved my problem with following steps.
1-)open your project file with a text editor.
2-)find "USEIIS" tag and replace its value with "False". save and exit.
3-)reopen your project file with visual studio

Resources