2016-11-13 35 views
0

これは、初めてMicrosoft Azureで自己ホスティングOWIN Web APIアプリケーションを開発して展開しようとしています。質問のために、サンプルアプリケーションhereが見つかりました。Azure WebJobコマンドラインアプリケーションを起動できません(再起動の保留状態)

だから私は単に私の三つのファイル、Program.csが、Startup.cs、およびValuesController.csあります

Program.csの

using Microsoft.Owin.Hosting; 
using System; 

namespace OwinSelfhostSample 
{ 
    public class Program 
    { 
     static void Main() 
     { 
      string baseAddress = "http://<MYSITENAME>.azurewebsites.net/"; 

      // Start OWIN host 
      using (WebApp.Start<Startup>(url: baseAddress)) 
      { 
       Console.ReadLine(); 
      } 

     } 
    } 
} 

Startup.cs

using Owin; 
using System.Web.Http; 

namespace OwinSelfhostSample 
{ 
    public class Startup 
    { 
     // This code configures Web API. The Startup class is specified as a type 
     // parameter in the WebApp.Start method. 
     public void Configuration(IAppBuilder appBuilder) 
     { 
      // Configure Web API for self-host. 
      HttpConfiguration config = new HttpConfiguration(); 
      config.Routes.MapHttpRoute( 
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/{id}", 
       defaults: new { id = RouteParameter.Optional } 
      ); 

      appBuilder.UseWebApi(config); 
     } 
    } 
} 

ValuesController.cs

using System.Collections.Generic; 
using System.Web.Http; 

namespace OwinSelfhostSample 
{ 
    public class ValuesController : ApiController 
    { 
     // GET api/values 
     public IEnumerable<string> Get() 
     { 
      return new string[] { "value1", "value2" }; 
     } 
    } 
} 

だから私は自分のプロジェクトに行くと「AzureのWebJobとして公開」を選択するとき、それが正常に.azurewebsitesアドレスに出版されたと言い、まだ私は、HTTPに移動します。//.azurewebsites.net/api/値が表示されます。「探しているリソースが削除されました。名前が変更されました。一時的に利用できません。」

私はこれをローカルに実行し、localhostにProgram.csのbaseAddressを変更すると正常に動作し、コントローラから応答が得られます。

従来のazureポータルでは、私のWebジョブは「再開待ち」となっています。

私はまた、WebJobプロジェクトではなく、コンソールアプリケーションを作成しようとした私のProgram.csや出版でこれを試みたが、これもうまくいきませんでした:

public static void Main() 
    { 
     string baseAddress = "http://<MYSITENAME>.azurewebsites.net/"; 

     var host = new JobHost(); 
     // The following code ensures that the WebJob will be running continuously 
     using (WebApp.Start<Startup>(url: baseAddress)) 
     { 
      host.RunAndBlock(); 
     } 
    } 

は、どのように私は私の自己ホスト型のWeb APIサーバーを持つことができます継続的に実行している?

答えて

1

WebJobが何であるか誤解していると思います。

すべてのAzure Web AppsはIISを経由しているため、バックグラウンドで作業する必要があります(詳細はdocを参照してください)。 HttpPlatformHandlerを使用してください(それは少し別の話題です)。

関連する問題