2012-03-28 17 views
6

iisnodeとexpressjsでいくつかの実験を開始し、ノードを持つRESTのようなAPIを作成しました。私はIIS 7.5のインストールから405 Method not allowedを取得PUTリクエストを実行すると、私は、しかしiisnode - IIS7.5:405 PUTリクエストを実行するときにメソッドが許可されない

app.put("/test", function(req, res){ 
    ... 
}); 

のようなものを作成しserver.jsにそう

これを解決する方法はありますか?

ところで、私はすでにグーグルと

+0

追加それはので、私はあなたがそこに何かを逃したかなり確信しているIISで99%確かなものです。しかし、私は本当にあなたのIISの設定で見ることができません:-) –

+0

これはなぜ私はちょうど誰がマゾフストがIISを使用してノードをホストしたいと思うのか理解できないのです... – UpTheCreek

+0

:)それはちょうどあなたはIIS Webサーバを実行するだけの制限があるかもしれません。私の場合、私はAppHarborにそれを配備したいのですが(コストの観点から)、私のためにもっと適しているからです実験(例えばHerokuより)。 – Juri

答えて

21

私は最終的にこの問題の解決策を見つけました。つまりWebDavModuleがPUTリクエストをブロックしていました。

  1. 後藤に
  2. 検索WebDavModuleを、アプリケーションの設定とオープン "モジュール" をごIISマネージャを開き、それを削除(右のメニュー)
:問題を解決するには

それは私のために働いた。

また、アプリケーションのweb.configファイルに

<system.webServer> 
    ... 
    <modules> 
     <remove name="WebDAVModule"/> 
    </modules> 
</system.webServer> 
2

一つの理由は、あなたのweb.configファイルは、特定のマップしないのかもしれ...ない成功を収めて別のハンドラマッピングにあちこちPUT動詞を追加しようとしましたiisnodeハンドラへのリクエストです。あなたのweb.configファイル内でこのようなiisnodeハンドラの登録を必要とする場合には要求がPUTメソッドをサポートしていない静的な要求ハンドラによってピックアップされており、これを修正するには405

で応答:https://github.com/tjanczuk/iisnode/blob/master/src/samples/helloworld/web.config#L7

また、node.jsファイルの名前で終わらないURLを使用する場合(上記のような場合)、URL書き換えモジュールを使用して、どのリクエストに含めるべきかを正確に伝える必要がありますそのURLはnode.jsエントリポイントのURLを指すように書き換えられます。続きを読む:http://tomasz.janczuk.org/2011/08/using-url-rewriting-with-nodejs.html

+0

あなたの答えは、しかし、私はすでにあなたのブログの記事を見つけ、それに応じて私のアプリを設定...どんな成功なし。私は解決策を今見つけました。 (下記参照) – Juri

関連する問題