Consuming a WCF Service working with Hololens Emulator - hololens

I am working in a LAN with Hololens Emulator consuming a WCF service.
With Mobile Emulator 10.0.xxx I am able to stablish communication without problem.
As soon as I change my Emulator to HoloLens Emulator(10.0.11082.1039) I receive an exception when trying to establish communication:
"No IPEndpoints were found for host 192.168.0.16"
The IP from the machine that have the WCF host in local network is "192.168.0.16" and it works with a different emulator
The capabilities in package.appmanifest I have enabled Private Networks and Internet capabilities.
In hyper-v the virtual switch of Hololens emulator is assigned to "Windows phone Emulator Internal Switch" the same as the the Mobile 10.xx Emulator.
I have followed also the steps described in this post with no success.
It seems there is an internal Hololens Emulator that block my connection.( this is just guessing)
Anyone have an additional idea?

The problem it is not WCF. The problem is the HOlolens emulator and localhost. You should have 2 different machines to test it.

Related

Nodejs wifi scan only return current WiFi on Azure WebApp

I've a nodejs app using this npm package (https://github.com/ancasicolica/node-wifi-scanner ) which basically use netsh wlan command to list all surrounding wifi. when I run this locally, everything fine but when /I deploy this to Azure Web App, it will only return the connected WiFi but bit surrounding. Any idea of what might have been wrong on Azure?
As the Technical background describes:
The module uses command line tools for gathering the network information:
netsh on Windows: netsh wlan show networks mode=Bssid
And we do not have sufficient permission to run this command on Azure Web Apps.
And secondly, As #astaykov said, Azure is a cloud compute platform, all the services and resources are in the Azure Data Centers, which cannot detect your WiFi environment on your local.
You cannot approach your requirement on any cloud compute platforms. You need to to the detection operations on your client side or devices.
There is nothing wrong on Azure!
Do you really expect to scan for WiFi networks inside an Azure Data Center (the chance that there is a WiFi network inside Azure Data Center is close zero) ?!
Do you believe that servers running inside Azure Data Center do have WiFi adapters (I don't) ?!
And what exactly are you trying to achieve - a server based application running on server somewhere on Internet, using netsch on the server to scan for WiFi networks available on your laptop? No, this is not possible. And this is not Azure limitation, and has nothing to do with Azure.

How to access Azure Storage Emulator (Local) over wifi?

I am following the information in this documentation to access azure storage emulator (locally)
http://msdn.microsoft.com/en-us/library/azure/hh403989.aspx
In the storage emulator, because the local computer does not perform
domain name resolution, the account name is part of the URI path. The
URI scheme for a resource running in the storage emulator follows this
format:
http://<local-machine-address>:<port>/<account-name>/<resource-path>
The following format is used for addressing resources running in the
storage emulator:
Blob Service:
http://127.0.0.1:10000/<account-name>/<resource-path>
Queue Service:
http://127.0.0.1:10001/<account-name>/<resource-path>
Table Service:
http://127.0.0.1:10002/<account-name>/<resource-path>
For example, the
following address might be used for accessing a blob in the storage
emulator:
http://127.0.0.1:10000/myaccount/mycontainer/myblob.txt
It works fine if I try to access it from anything running on my computer, for example a local IIS server etc, that's because it has access to 127.0.0.1 on the pc
But what if I try to access it from an mobile device on the same wifi network ?
I can access local IIS servers from a mobile device by going to applicationhost.config and binding the local IIS server to the computer LAN IP for example 192.168.1.5 etc
Any idea how can I do this binding for the azure storage emulator ? i.e. how do I expose it to the LAN ?
Thanks
The local emulation services were not intended for remote access. I do recall reports of folks setting up "loop back" connections to help enable this. But IMHO, in most cases its almost easier and more cost affective to simply run the services in the cloud. This also helps avoid any issues with differences between cloud and on-premises.
If we look at doing mobile device development... You could easily spend several hours trying to properly set up the loopback. If we put a price on this... say $25/hr.. and we spent 3 hours setting it up. So we just spent $75 to build that out. By comparison, we likely could have used that same $75 to do our dev against a cloud storage account for the better part of a year.
I also faced similar issue where I wanted to access the azure storage emulator from another linux host for development. I ended up installing a local proxy server on the windows host which forwards request to the emulator instance.

'us-ascii' is not a supported encoding name on Windows Phone 8/Azure

I'm trying to test the Microsoft Azure's Mobile Services. I've created a Mobile Service on the Azure portal and downloaded the "getting started" project with the Todo demo application.
I was able to deploy the service on the cloud and to run the app with the simulator but when a I try to host the service on my local IIS and run the mobile app, I've got the following exception on the client side:
System.ArgumentException: 'us-ascii' is not a supported encoding name.
Parameter name: name
at System.Globalization.EncodingTable.internalGetCodePageFromName(String name)
at System.Globalization.EncodingTable.GetCodePageFromName(String name)
at System.Text.Encoding.GetEncoding(String name)
at System.Net.Http.HttpContent.<>c__DisplayClass1.<ReadAsStringAsync>b__0(Task task)
My Windows's language is English and my keyboard's language is French. I tried to configure the encoding of the HTTP requests on both client side and service side but nothing worked.
Any help would be greatly appreciated :)
Thanks.
This is a side effect of now allowing your WP8.X Emulator (VM) to connect to your local Service that runs under IIS.
When you create a WCF web service in Visual Studio, by default the service is hosted in IIS Express and only accepts connections at localhost
The Windows Phone 8 Emulator, however, configures itself as a separate device on the network. As a result, an app running on the Windows Phone 8 Emulator can’t connect to the development computer as localhost.
Before you can connect successfully from the emulator to the local web service, you have to follow these steps
In short :
Go to %USERPROFILE%\Documents\IISExpress\config\
Open applicationhost.config
Add a new Binding with the IP of your WPEmulator VM
Restart VS as Admin

WP8 app with large signalr component only works on Emulator

I have a SignalR enabled Web API server on Azure, and I have created a Windows Phone 8 client app that works perfectly well with the server on my WP8 Emulator.
After deploying to my Nokia Lumia 925 device, none of the components that demonstrate Server - Client push work.
Like, literally, nothing Signal R works on the app, but when I run it again on my Emulator everything works.
I just don't get what is going on.
I need help, please.
Thanks
UPDATE
The REST API and the SignalR powered streaming API are live on Azure.
Basically, I can make posts to the rest API, but then the Streaming API which is meant to broadcast that post to all connected clients including the originating client fails on the deployed device, but not on the emulator.
Could be proxy/connection related.
On the emulator you could be using a debug/emulated version of your Azure Service in which case the WP8 client app can see it fine. You may want to make sure the WCF Service has actually been deployed to Azure it is accessible over the web and its not actually pointing to locahost.
Then once your sure of all that just make sure your phone's browser can see the services end-points on azure and the client app should see it fine.
Maybe also try using Fiddler to see what network traffic is coming from your emulator and also the app once on-device. Also check you're not trying to hit "localhost" once deployed to your device. See here for how to use Fiddler with WP8 emulator and devices: http://www.spikie.be/blog/post/2013/01/04/Windows-Phone-8-and-Fiddler.aspx

Test Win8 App hosted in Azure Compute Emulator on Tablet

I have a two web application in Visual Studio 2012 running in the Windows Azure Compute Emulator (using IIS Web Service, not Express). Additionally I have a Windows 8 App in another Visual Studio instance which uses both azure web applications. This combination works fine on the same machine.
For presentation purposes I'd like to run the app on a Windows RT Tablet. Therefore I use the remote debugging tool to run the app on the tablet. Running the app is not the problem. But I didn't found a possibility to connect to the web applications from the tablet. The azure Emulator generates URLs like 127.0.0.X:81 but the tablet cannot resolve this address.
Is there a workaround to solve my problem? A way to run the azure application with the IP address of my dev machine? Or is it possible to create a kind of a proxy running on the dev machine which forwards requests from the tablet to the azure application?
I've seen a possible solution running fiddler as a reverse proxy. This does not work for me because fiddler seems to listen only on one port. But I need two.
Another possibility would be to configure the Azure Emulator endpoint.
Take a look at this SO answer for more information.

Resources