2017-02-24 9 views
2

私はWebJobとして自分のアプリケーションのlocalyサービスを作成する際に問題があります。私はすべてのGoogleを読むように思えるが、私は解決策を見つけることができません。 This one hereは私のものではありません。Azure WebJobのアクセスが拒否されました

だから私は、私のPCに、参照、ddls、およびサービスのように動作する多くの計算を持つC#コンソールアプリケーションを持っています。主な機能は次のようになります。

static void Main(string[] args) 
    { 
     string baseAddress = "http://127.0.0.1:80"; 
     Console.WriteLine(baseAddress); 
     if (args.Count() > 0 && !string.IsNullOrEmpty(args[0])) 
      baseAddress = args[0]; 
     SelfHostServer server = new SelfHostServer();   //using Microsoft.Owin; 
     server.Start(baseAddress); 
    } 

次に、Azure AppServiceにnodeJsアプリケーションが公開されています。基本的には、C#サービスを呼び出して結果を返す必要があります。このため、私はC#アプリケーションでWebJobを作成しようとしています。私はそれを公開し、それを実行しようとするが、私は(このエラーはflom紺碧ポータルコンソールである)を得る:

Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Net.HttpListenerException: Access is denied 
    at System.Net.HttpListener.SetupV2Config() 
    at System.Net.HttpListener.Start() 
    at Microsoft.Owin.Host.HttpListener.OwinHttpListener.Start(HttpListener listener, Func`2 appFunc, IList`1 addresses, IDictionary`2 capabilities, Func`2 loggerFactory) 
    at Microsoft.Owin.Host.HttpListener.OwinServerFactory.Create(Func`2 app, IDictionary`2 properties) 
    --- End of inner exception stack trace --- 
    at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 
    at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 
    at Microsoft.Owin.Hosting.ServerFactory.ServerFactoryAdapter.Create(IAppBuilder builder) 
    at Microsoft.Owin.Hosting.Engine.HostingEngine.StartServer(StartContext context) 
    at Microsoft.Owin.Hosting.Engine.HostingEngine.Start(StartContext context) 
    at Microsoft.Owin.Hosting.Starter.DirectHostingStarter.Start(StartOptions options) 
    at Microsoft.Owin.Hosting.Starter.HostingStarter.Start(StartOptions options) 
    at Microsoft.Owin.Hosting.WebApp.StartImplementation(IServiceProvider services, StartOptions options) 
    at Microsoft.Owin.Hosting.WebApp.Start(StartOptions options) 
    at Microsoft.Owin.Hosting.WebApp.Start[TStartup](StartOptions options) 
    at Avilda.Klevas.Core.Server.SelfHostServer.Start(String baseAddress) 
    at klevas.webapistart.Program.Main(String[] args) 

それがポートに問題がありますように見えますが、私はすべての権利1 anywereを見つけることができません。私は他のexeを実行することができますが、誰が聞いている人ではありません。私はC#アプリが外部から到達できないかどうか気にしません、私はちょうどそれらの2つが通信することを望みます。何か案は?または他のソリューション(VMを除く)?

+0

私は今このコンピュータでローカルでこのエラーを取得することができました。その後、Visual Studioを管理者として実行して解決しました。だからidk、WebJobを管理者として実行する方法がありますか? – Shpooke

答えて

2

次のように書かれているように、の各アプリケーションでは、「プライベート」ループバック接続があります。アプリ "A"はアプリ "B"によって確立されたローカルループバックソケットを聞くことができません。 Operating system functionality on Azure App Service

許可されていないポートに耳を傾けているので

は、私があなたの代わりにストレージをキューに聞く示唆しています。 WebJobにメッセージを送信するすべてのアプリは、メッセージをキューストレージに挿入する可能性があります。 WebJobs SDKを使用すると簡単に操作できます。下記のコードは参照用です。メッセージがqueue1に挿入されている場合は、以下のメソッドがトリッジされます。

public static void ProcessQueueMessage([QueueTrigger("queue1")] string logMessage, TextWriter logger) 
{ 
    logger.WriteLine(logMessage); 
} 

また、ノード・アプリケーションでキューに耳を傾け、あなたはノードアプリに戻ってあなたのWebJobsからのメッセージを送信したい場合は、キューにメッセージを挿入してください。

+0

長い間、この問題を解決するために私は戻ってきました。ストレージクエンネは私にとって完璧に機能しました。そのようなことをやって他の人のため つ以上のオプション(必要に応じていないポートのリスニングやquenue): \t \t 2.1 VAR execを: \t 1.リメイクexeファイルは、必要なパラメータを指定して、CMDラインを介してノードから \t 2.ファイル名を指定して実行exeファイルをパラメータを取得します= require( 'child_process')。\t \t 2.2(exec( 'test.exe {parameters}'、['/ C']、function(err、cmdOut、stderr){) – Shpooke

関連する問題