2009-09-17 12 views
40

Windows7で自分の開発環境をセットアップしようとしていますが、IISを動作させるのに問題があります。私はIIS6からやっているようにすべてを設定しました。私の問題は、IIS7とIIS7.5の間で変更されたものでなければなりません。IIS 7.5をWin7 Prof. 64bitで返す空白ページを返す(HTMLなし)

いずれのウェブサイトもhtmlを返しません。既定のサイトではなく、新しく追加されたサイトではありません。

I空白の画面で、その後

telnet localhost 80 

GET/<enter> 

場合、私は何もなく、単一のヘッダやHTML要素を取得していません。

私が代わりに私は、次のHTMLを取得するGETリクエストのごみを入力した場合:

HTTP/1.1 400 Bad Request Content-Type: 
text/html; charset=us-ascii Server: 
Microsoft-HTTPAPI/2.0 Date: Thu, 17 
Sep 2009 17:04:01 GMT Connection: 
close Content-Length: 326 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML><HEAD><TITLE>Bad 
Request</TITLE> <META 
HTTP-EQUIV="Content-Type" 
Content="text/html; 
charset=us-ascii"></HEAD> 
<BODY><h2>Bad Request - Invalid 
Verb</h2> <hr><p>HTTP Error 400. The 
request verb is invalid.</p> 
</BODY></HTML> 

だから、IISがあることを証明し、私のIISログ・パスではポート80

上の要求を処理して、私はファイルはまったくありません。どんな理由であれ、ログは書き込まれていません。

私はIISマネージャで、Webサイトの基本設定を表示すると、私は権限に関連したエラーを取得するテスト接続]ボタンをクリックします。

サーバーはと パススルー認証を使用するように設定され 指定された物理パスにアクセスするためのアカウントが組み込まれています。ただし、IIS マネージャは、 ビルトインアカウントにアクセスできるかどうかを確認できません。アプリケーションプールのIDが であることを確認してください。 物理パスへの読み取りアクセス。 このサーバーがドメインに参加していて、 アプリケーションプールIDが NetworkServiceまたはLocalSystemの場合、¥$が であることを確認してください。 物理パスへの読み取りアクセス。その後、 これらの設定をもう一度テストします。

私のAppPoolは実際のユーザーではないようなApplicationPoolIdentityとして実行されているため、ApplicationPoolIdentityファイルのアクセス許可を与えることはできません。私はIIS_IUSRをテストしてみました。他のすべての人がパスに完全にアクセスできるようにしました。

私がこの時点まで何をしても、私はIISが権限が正しいとは言いませんでした。しかし、私はまた、特に許可エラー(300s)ではなく、エラーを見たことがない。

だから、どんなアイデアですか?私はIIS、c:\ inetpubを完全に削除しようとしてから、すべてを再インストールしようとしました。私は基本的にここでデフォルトの設定をしているので、単純なものでなければなりません。

ありがとうございます...

答えて

86

私はそれを解決しました。問題を抱えている人は、ここにいます。

最初に問題を再現しました。Windowsの機能の追加と削除メニューで「ASP.NET」を選択してIISをインストールしました。これは、.NETアプリケーションを実行するためにIISに必要なすべてを選択していましたが、興味深いことに静的なページ(。html、css、jsなど)私のテストページはちょうどこんにちは世界の.htmlページだったので、それが提供されていなかったのです。

修正するには:静的コンテンツの配信を有効にするには、同じ[Windowsの機能の追加と削除]リストの[一般的なHTTP機能]で[静的コンテンツ]を選択する必要があります。一度これを行うと、私のテストページは正常に動作しました。

要約:静的コンテンツ(CSS、Images、Javascript)がなくても.NETがどのように動作するのか分からないため、ASPを選択するときにMSが静的コンテンツをデフォルトで含まない理由はわかりません。ネット。おそらく、IISをインストールする私のワークフローは間違っていたでしょう。

静的なコンテンツ要求がブロックされていることを検出するリクエストのフローをトレースする方法があると確信していますが、その方法はわかりません。

+1

偉大な情報は、ちょうど同じ問題に遭遇し、これはそれを修正しました:-) – Steffen

+2

FWIW on Windows 2008 R2私は、HTTP 200 OKとコンテンツ長が0の有効なHTTPヘッダーを返します。静的コンテンツを有効にしてもそれを修正しました。 – Andy

+1

@Matt素晴らしい情報はこちら。しかし、これは頭痛になるだろう:) – clamchoda

7

Matt Coferの解像度は正しい:静的コンテンツを表示するには、最初のインストール時に静的コンテンツ機能をインストールする必要があります。しかし、私はAdd/Remove機能が私にとってはうまくいかないことを発見しました。機能の一部しか示しておらず、IISとは関係がありませんでした。

そう...ここに静的コンテンツをインストールするための別の方法です:

  1. オープンサーバーマネージャ
    • Start Menu > type "server manager" in search field > click resulting link
  2. ノード
  3. 右クリック役割を展開Webサーバー(IIS)ノードがコンテキストメニューウィンドウが開き役割サービスの追加
  4. からを役割サービスの追加コンテキストメニュー
  5. 選択を表示するために、静的コンテンツを有効Web Server > Common HTTP Features
  6. クリックをナビゲート
+1

Windows 7 Professionalにはサーバーマネージャーが付属していません。 Win 7 Proでは、コントロールパネル>プログラムと機能から「Windows機能を有効または無効にする」を使用する必要があります。 –

関連する問題