2016-09-29 13 views
1

私はAzureのモバイルクイックスタートチュートリアル(Xamarin.Android)に従っており、Facebook認証とプッシュ通知を実行できました。Azure MobileサービスNodejsでローカルマシンエラーが発生しました。

ここでは、ローカル開発環境を持つ方法、または(Azure Cloudではなく)ローカルマシン上でモバイルアプリケーションサービス(Nodejs)を実行する方法を知りたかったのです。そして、私はこのチュートリアルに従った: https://shellmonger.com/2016/04/01/30-days-of-zumo-v2-azure-mobile-apps-day-2-local-development/

しかし、私はアプリを開いた直後に壊れます。 enter image description here

エラー:ノートの

Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException: Cannot PUT /push/installations/cc69e3d2-5d18-4077-a23a-56a845a73698 

カップル: - 私はAzureのクラウド上のリモートアプリサービスに接続している場合、このアプリはそれが必要として動作

下のスクリーンショットを参照してください。

- はい、私は、アプリケーションサーバー(nodejsが)私のローカルマシンにクローン化してきた - インストールに必要なモジュール、およびそれが(スクリーンショット) enter image description here

// This is a base-level Azure Mobile App SDK. 
var express = require('express'), 
    azureMobileApps = require('azure-mobile-apps'); 

// Set up a standard Express app 
var app = express(); 

// If you are producing a combined Web + Mobile app, then you should handle 
// anything like logging, registering middleware, etc. here 

// Configuration of the Azure Mobile Apps can be done via an object, the 
// environment or an auxiliary file. For more information, see 
// http://azure.github.io/azure-mobile-apps-node/global.html#configuration 
var mobileApp = azureMobileApps({ 
    // Explicitly enable the Azure Mobile Apps home page 
    homePage: true, 
    // Explicitly enable swagger support. UI support is enabled by 
    // installing the swagger-ui npm module. 
    // swagger: true, 
    // App will use MS_SqliteFilename or MS_TableConnectionString to choose the SQLite or SQL data provider 
    data: { 
     dynamicSchema: true 
    } 
}); 

// Import the files from the tables directory to configure the /tables endpoint 
mobileApp.tables.import('./tables'); 

// Import the files from the api directory to configure the /api endpoint 
mobileApp.api.import('./api'); 

// Initialize the database before listening for incoming requests 
// The tables.initialize() method does the initialization asynchronously 
// and returns a Promise. 
mobileApp.tables.initialize() 
    .then(function() { 
     app.use(mobileApp); // Register the Azure Mobile Apps middleware 
     app.listen(process.env.PORT || 3000); // Listen for requests 
    }); 

必要として動作している - そして、また、はい、私は私がローカルで実行している1(スクリーンショット)

enter image description here

にモバイルアプリのクライアントの必要ApplicationURLを変更しました
... 

const string applicationURL = @"http://192.168.1.221:3000"; 

const string localDbFilename = "newlocalstore.db"; 

protected override async void OnCreate(Bundle bundle) 
{ 
    base.OnCreate(bundle); 

    // Set our view from the "main" layout resource 
    SetContentView(Resource.Layout.Activity_To_Do); 

    CurrentPlatform.Init(); 
    ... 

最後に、私のIPアドレスは、MS SQL Serverのファイアウォール設定ですでにホワイトリストに載っています。それで私のローカルアプリケーションサービス(nodejs)を完全に立ち上げることができたので、それは問題ではありません。

何故エラーが発生したと思われますか?

+0

は、あなたのC#コードが使用しているものと同じip/port(192.168.1.211:3000)への 'node.js'コードバインディングですか? – SushiHangover

+0

参考:例外/コード/ etc ...のスクリーンショットを使用するのは悪いフォームで、インデックス/検索可能ではない、読みにくいなど。ほとんどの人があなたの質問をスキップします。 – SushiHangover

+0

こんにちは@SushiHangover - どこで見つけるか変更できますかこのバインディングは?しかし、あなたがapp.jsのコードを意味するなら - はい、ポート3000にあります。私のエミュレータがそれにアクセスできるように、ipアドレスは私のマシンのローカルIPアドレスです。 – Raven

答えて

0

ローカルで実行する場合は、必要なすべての接続文字列(クラウド内で自動的に生成された文字列も含む)を指定する必要があります。この場合、ローカルの 環境でNotification Hubs接続文字列を定義していません。

Kudu()にアクセスし、接続文字列の環境変数を確認してください。彼らはあなたがそれらを探すとき、むしろ明らかです。すべての接続文字列が同じ環境変数として定義されていることを確認してください。

+0

すごい男!azureMobile.jsの設定を編集して「通知」を追加しました。 Kudu、次にwoalaで示された変数を使用しました!できます!ありがとう! :) – Raven

関連する問題