Connecting to and syncing with localhost from android device not working - azure

I am using the Azure Mobile App quickstart ToDoList example to get started with cross platform app. I have set up the back-end and it is working on localhost - I can hit it using Swagger and gets posts etc are working.
I then set up the client application (Xamarin.Forms). I am running the client application on my Android device and all works great when back-end is in Azure, including the offline sync element. The problem is that I have to work locally for now but I cannot sync with the db when running on localhost.
At first the debugger was giving me a "connection refused" error, so I followed the steps here and in various other sources including using my laptop IP and setting firewall rule, adding binding to port in IIS Manager and applicationhost.config, and changing ApplicationURL in Constants.cs.
Now, I get no connection refused error, but the data is not getting to the db, athough the localdb on the tablet seems to be working - it is failing when I try to sync to/from db.
Not too familiar with networking but it may be important to note that when I use localhost:portnum/tables/todoitem in browser I get results in XML but when I use 192.168.0.10:portnum/tables/todoitem I get "Bad Request - Invalid Hostname".

By default, your Mobile App .NET server backend application will run in IIS Express. This is problematic when debugging with a client application running in another device on your network, or in a virtual machine in Hyper-V (such as Windows Phone Emulator). IIS Express will host your server application under localhost, which makes the application unreachable to other devices or virtual machines. Your client application running on Windows Phone Emulator has a different meaning for localhost. The same is true for the Visual Studio Emulator (which runs in Hyper-V) and the Google Emulator.
It is simpler to configure your machine to host your Mobile App .NET server backend application on IIS, as this allows you to control the binding of the server application to an IP address, rather than localhost.
For information on this, see: https://github.com/Azure/azure-mobile-apps-net-server/wiki/Local-development-and-debugging-the-Mobile-App-.NET-server-backend

Related

Self Host SignalR in windows 10

Hi iam making an app for which i have already completed the UI part and is currently a asp.net MVC project. for which i use the local IIS to debug. A part of the project that we are using uses signalr for device that connect to the system running the app.
Local IIS on windows 10 PRO limits the max connection to 10. Which is not something we can do away with.
The solution that seems promising is to make a signalR self host.
as the link states here
https://github.com/aspnet/KestrelHttpServer/issues/435
if the app is not using any part of the inbuilt IIS then there is no limit of the maximum connection.
The problem that im facing is that there is not help available anywhere related to it. and i want to be sure before getting to start with signalR self host about the maximum connections that it will be able to hold on a system running windows 10 Home / Pro.
Run it in IIS Express.
Right click your web project and go to properties.
On the Web tab, note the Project Url with port (http://localhost:12345)
That is the url it will be running in IIS Express.
Then start your site to fire it up in IIS Express. I right click the web and select View, but you could also start debugging.
Once it is running in IIS Express you can see the icon in the taskbar by the clock and manage all sites running in IIS Express there.
So without the available help. I converted my application to SignalR Self Host and tested it. ANd seems there is no Connection Limit even on Windows 10 Home version. So the system is working fine.
#Lex Li i think you should test again with windows 10.
So the conclusion is that IIS is actually the culprit for the max connection limit.

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.

Can't debug in Visual Studio when using local IIS WITH hostname

I have a solution that contains multiple projects, two of which are web applications that have their own separate domains. I have this published successfully to my dev/production environment fine and now would like to mirror these settings across to my local machine for better testing.
I have configured the project to run under Local IIS and enter the required Url for both projects and hit debug, I'm then presented with the following error:
Unable to start debugging on the web server.
Invalid access to memory location.
Interestingly if I change my IIS configuration and remove the hostname and change the port to 81/82 (and reflect these changes in VS) then I can successfully start debugging my application.
This is more of an irritation than anything else as I can work without the custom hostnames and configure the rest of IIS perfectly, however this does get in the way of logging into both systems simultaneously.
I tried a number of recommended fixes such as:
Ensured app pool is running
Restarted Visual Studio
Restarted computer
Run VS as Administrator

Can my Azure Mobile Service run locally?

I am new to Azure. I am following this tutorial in setting up my .Net server for azure and ios client.
http://azure.microsoft.com/en-us/documentation/articles/mobile-services-dotnet-backend-ios-get-started/
I am testing my ios client on simulator. Can I run my .NET server on my location machine with put publish it to azure? If yes, how can I figure my client to talks to this location machine?
And in the tutorial, it creates a Database Table. If I run it locally, do I need to setup my location DB server?
Not on a mac (which you need for iOS development). With the .NET backend you can run the service locally on a Windows machine, but it will be running off of localhost.
For iOS development, you have two choices. If you use the JavaScript / node.js backend, where all of your development can be done in the Mac (you can configure the service via Git locally or directly in the portal). If you use the .NET backend (the link you mentioned), then you need the Mac for the client-side development, and a PC (or Windows running in the Mac on an emulator such as parallels) to develop the server (you need Visual Studio for that).
And regarding your question about the table, when you run it locally, it will use Entity Framework Code First (by default), so you don't need to create the table in your (local) database - it will create it automatically for you.

Windows Azure emulator 2.1 not running on express mode

Upgraded my windows azure project to 2.1 and i cannot get the local emulator to work any longer.
I get this error when I run on express mode
"the compute emulator is not running in express emulation mode. Please restart the emulator in correct mode."
I tried restarting but it just would not work.
I also tried using the full mode but get this one
-'cannot listen on pipe name 'net.pipe //localhost/dfService/ because another pipe endpoint is already listening on that name'
- I get a dfagent and windows azure development fabric logging agent not working on this setup as well.
Please help.
Thank you

Resources