none
ASP.NETで作成したハンドラ実行できない RRS feed

  • 質問

  • お世話になります。

    ASP.NETで作成したハンドラをWindowsAzure上で動かそうとしています。

    もともとのプロジェクトでWeb.config

     <system.web>

        <httpHandlers>
          <add verb="*" path="InvUploadHandler.asmx" type="Itam.Server.InventoryHttpServer.Handler.UploadHandler,InventoryHttpServer"/>
          <add verb="*" path="PolUploadHandler.asmx" type="Itam.Server.InventoryHttpServer.Handler.PolicyResultUploadHandler,InventoryHttpServer"/>
          <add verb="*" path="InvAliveCheckHandler.asmx" type="Itam.Server.InventoryHttpServer.Handler.AliveCheckHandler,InventoryHttpServer"/>
          <add verb="*" path="ConductCheckHandler.asmx" type="Itam.Server.InventoryHttpServer.Handler.ConductCheckHandler,InventoryHttpServer"/>
        </httpHandlers>

    </system.web>

    として動かしていたのですがWindowsAzure上では502のエラーになり修正して

      <system.webServer>
        <handlers>
        <add name="InvUploadHandler.asmx_*" path="InvUploadHandler.asmx" verb="*" type="Itam.Server.InventoryHttpServer.Handler.UploadHandler,InventoryHttpServer" />
        <add name="PolUploadHandler.asmx_*" path="PolUploadHandler.asmx" verb="*" type="Itam.Server.InventoryHttpServer.Handler.PolicyResultUploadHandler,InventoryHttpServer" />
          <add name="InvAliveCheckHandler.asmx_*" path="InvAliveCheckHandler.asmx" verb="*" type="Itam.Server.InventoryHttpServer.Handler.AliveCheckHandler,InventoryHttpServer" />
          <add name="ConductCheckHandler.asmx_*" path="ConductCheckHandler.asmx" verb="*" type="Itam.Server.InventoryHttpServer.Handler.ConductCheckHandler,InventoryHttpServer" />
        </handlers>
      </system.webServer>

    としました。

    上記の修正によりVS環境のデバックでは予定通りの動作になりました。

    しかしWindowsAzure上にアップロードすると

    「The custom error module does not recognize this error.」

    というようなエラーメッセージが返信されます。

    どなたかASP.NETを使用したハンドラをAzure上で動かした方で同じような経験があれば原因を教えていただければと思います。

     

    2010年7月31日 17:50

すべての返信

  • こんにちは。

    回答が遅くなってしまってすみません。

    普通にHTTPハンドラとかは動作するはずです。

    ですので、違う原因かなと推測しています。

    ログを確認すると、もしかして自作のアセンブリなどを動かそうとしているのでしょうか?

     

    でしたら、まずはそのアセンブリのファイルをAzure上に載せる必要があります。

    ファイルのプロパティを開いて「出力ディレクトリにコピー」を「コピーしない」から「常にコピーする」に変更してください。

    また、一応アセンブリが64ビットで動作するかも確認してください。

    過去のものですと32ビットで作られているため64ビットで動作するAzureでは動かない可能性があります。

     

    ※他の会社のモジュールであればライセンス体系も注意してください。Azureの場合は仮想的なサーバのためライセンスが問題になる可能性があります。

    ※勘違いでしたらすみません。

    • 編集済み bird982000 2010年8月7日 9:20 論理に一部飛躍があったため
    2010年8月7日 3:47