2011-12-08 5 views
0

「ローカルで動作します」という問題に悩まされています。Windows Azure WebRoleのWcfWebApiは常に404を返しますが、ローカルでは問題ありません

NuGetを使用して、WcfWebApiをAzure WebRoleにインストールしました。 これはWebフォームのWebサイトです。

Global.asax.cs Application_StartはRegisterRoutes()を呼び出します。

RegisterRoutes()含まれていますRouteTable.Routes.Add(new ServiceRoute("MySvc/TheService/", new WebServiceHostFactory(), typeof(Services.TheService)));

サービスのインタフェースが含まれています

[OperationContract] 
    [WebGet(UriTemplate = "/hello", BodyStyle = WebMessageBodyStyle.Bare)] 
    string Hello(); 

私が今までナビゲートので、もし実装するクラスは、単に、 "こんにちは" を返します。http://localhost:49831/MySvc/TheService/hello - 私は "hello" を取得返さ。 OK。

私は、私は常に取得今のAzureへ発行し、(xx.cloudapp.net/などで明らかに)同じURLをしようとした場合、私は前に過去にWcfWebApiを使用していた404

- が、常にでWCfWebRole。これは違いがありますか?なぜローカルで動作しますか?それはAzureとは何か関係がありますか?

ご了承ください。ありがとう。

編集:だけでなく、ラジェッシュの提案@あたりのように私がホスト・サービスのURL、例えば記載されているGet_HostedServices、走っ:https://management.core.windows.net/mysubscriptionId/services/hostedservices/the-nameOfTheAppを。これがどこに行くのか分かりません...

私はWebアプリケーション内のフォルダに.svcファイルを加え、すべての(ひどい)system.serviceModelサービスなどを追加して、RESTスタイルに必要なものを追加しました構成。これはすべて動作します。

私はこのような質問に答えられておらず、何が起きたのか不思議です。これまでの回答に感謝します。私が答えを見つけたら、私は更新します。

+0

ホストされているすべてのサービスを一覧表示する方法については、次のリンクを参照してください。http://msdn.microsoft.com/en-us/library /windowsazure/ee460781.aspx – Rajesh

+0

@Rajesh:ありがとうございます。しかし、Azureサービスのリストが表示されていることは間違いありません.WebRoleがアップしていることを知っています。 WebRoleがホストするサービス内の*エンドポイント。とにかく –

+0

上記のようにホストされたサービスのリストを表示しようとすると、サービスの場所が表示されません。IISからAzureサーバー上のIEでサービスを参照しようとすると、そのパスが表示され、そこからリソースの場所を把握できるはずです。 – Rajesh

答えて

0

私はあなたの問題について考えました。IISまたはIIS Expressを使用してアプリケーションをローカルで実行しようとしますか? (IIS expressはすぐに利用できません。インストールする必要がありますが、VSで使用する方が簡単です)

あなたが提供したURLは、VSがCassini(Visual Studio Development Server)またはIIS表現する。 IIS Expressとは異なり、CassiniはIISとまったく同じように動作しないことに注意してください。 AzureのWebロールはIISの下で実行され、発生しているさまざまな動作を説明することができます。

さらに、あなたのURLは、ドメインが127.0.0.1のようなものでなければなりません(WindowsのAzureのエミュレータのURLのように見えるしません:。。

を私はあなたのプロジェクトは、Windows Azureのプロジェクトであると仮定テストし、されています

+0

こんにちは、ありがとうございました。元のサービス(WebServiceHostFactory()経由で作成)はエミュレータで動作します。 VS開発サーバーでは、 IIS Express(webroleがスタートアッププロジェクトとして設定されている)とwin2008サーバーのIIS 7が完全にインストールされています。それがうまく動作しない唯一の場所は、Azure WebRoleです。 –

+0

私は本当に違いを理解していないので、自分自身でいくつかのテストをしたいので、あなたの問題を示すサンプルを含むzipをオンラインにできますか? – Eilistraee

+0

良いアイデア。サンプルを作って投稿しようとします。これは数日かかるかもしれませんが、私は試してみます。ありがとう。 –

関連する問題