2012年8月24日金曜日

Android ASP.NET(MVC2)で作成したWebAPIに接続する その2

Android ASP.NET(MVC2)で作成したWebAPIに接続する その1 で作成したWebAPIをIISに設定します。
 
IIS の各バージョンでの ASP.NET MVC の使用
  •  IIS 7.0/7.5 (統合モード) - ASP.NET ルーティングの使用には、特別な構成は不要。
  •  IIS 7.0/7.5 (クラシック モード) - ASP.NET ルーティングの使用には、特別な構成が必要。
  •  IIS 6.0 以下 - ASP.NET ルーティングの使用には、特別な構成が必要。
今回はWindowsServer2003 SP2、IIS 6.0、ASP.NET 2.0に配置します。
 
IIS7.0より以前のバージョンでASP.NET MVCを使用するには、2つの方法があります。
  • (1)ルート テーブルを変更して、ファイル拡張子を使用する
  • (2)ワイルドカード スクリプト マップ を作成する
Web サーバーにアクセスできない場合 (たとえば、ASP.NET MVC アプリケーションがインターネット サービス プロバイダーによってホスティングされている場合) は、(1)を使用します。
URL の表示を維持する必要があり、Web サーバーにアクセスできる場合には (2)が使用できます。
 
今回は(2)の方法でIISに配置します。

まず仮想ディレクトリを作成します。
エイリアスは「AndroidTest」
Webサイトのコンテンツのディレクトリには、ソリューション以下のフォルダを指定
仮想ディレクトリのアクセス許可は
 「読み取り」チェックONを追加
 「ASPなどのスクリプトを実行する」チェックONを追加
※IISに配置する前にWebサイトのweb.configのデバッグをFalseに設定すること
作成した仮想ディレクトリ右クリックし、[プロパティ] をクリックします。
[仮想ディレクトリ] タブをクリックし、[構成] ボタンをクリックします。
 
 
 
 [マッピング] タブを選択し、拡張し「aspx」の実行可能ファイルパスをコピーします。
[挿入] ボタンをクリックします。
 
 
 
[挿入] ボタンをクリックし、先ほどコピーしたパスを貼付け、「ファイルの存在を確認する」チェックをOFFにします。
 


ASP.NET MVCアプリケーションのGlobal.asaxを開きRootマップを追加します。
 Note: For instructions on enabling IIS6 or IIS7 classic mode, 
' visit http://go.microsoft.com/?LinkId=9394802

Public Class MvcApplication
    Inherits System.Web.HttpApplication

    Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}")

        ' MapRoute takes the following parameters, in order:
        ' (1) Route name
        ' (2) URL with parameters
        ' (3) Parameter defaults
        routes.MapRoute( _
             "Default", _
             "{controller}/{action}/{id}", _
             New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional} _
         )

        '追加
        routes.MapRoute( _
            "Root", _
            "", _
            New With {.controller = "Home", .action = "Index", .id = ""} _
        )
       
    End Sub

    Sub Application_Start()
        AreaRegistration.RegisterAllAreas()

        RegisterRoutes(RouteTable.Routes)
    End Sub
End Class
動作確認をします。
http://IPアドレス:ポート番号/AndroidTest」にアクセスすると、テスト画面が表示されます。
 
 
 
WebアプリケーションにデータをPostするhtmlを変更します。
actionのurlを変更します。
TestMvcApplication1.html
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
</head> 
<body> 
<h2>MvcApplication1テスト</h2> 
<form action="http://IPアドレス:ポート番号/AndroidTes/Test" method="post"> 
<textarea name="testxml" style="width:600px; height:130px;"> 
<?xml version='1.0' encoding="UTF-8" ?> 
<root> 
    <user> 
        <id>1</id> 
        <name>田中</name> 
    </user> 
    <user> 
        <id>2</id> 
        <name>山田</name> 
    </user> 
    <user> 
        <id>3</id> 
        <name>野原</name> 
    </user> 
</root> 
</textarea><br /> 
 <input type=submit /> 
 </form> 
</body> 
</html> 
ブラウザから開き、クエリ送信ボタンをクリックします。
 
 
 
 

0 件のコメント: