55

Visual Studio Express 2013 for Web の IIS が *.json ファイルの読み込みを許可しないという問題があります。*.json ファイルを読み込もうとすると、403 Forbidden が表示され、JSON ファイルの読み込みを許可する IIS の構成方法に関するヘルプ ページが表示されますが、この情報をどう処理すればよいか、IIS がどこにあるのかわかりません。

これはエラーページです:

HTTP エラー 404.3 - 見つかりません リクエストしているページは、拡張機能の構成が原因で提供できません。ページがスクリプトの場合は、ハンドラーを追加します。ファイルをダウンロードする必要がある場合は、MIME マップを追加します。

最も考えられる原因: ハンドラー マッピングが欠落している可能性があります。デフォルトでは、静的ファイル ハンドラーがすべてのコンテンツを処理します。使用しようとしている機能がインストールされていない可能性があります。Web サイトまたはアプリケーションに対して適切な MIME マップが有効になっていません。(警告: .ASPX ページや .config ファイルなど、ユーザーがダウンロードしてはならないコンテンツの MIME マップを作成しないでください。) ASP.NET がインストールされていない場合。

試すことができること: system.webServer/handlers で: 現在のページの予想されるハンドラーがマップされていることを確認します。前提条件 (runtimeVersion、pipelineMode、bitness など) に特に注意を払い、アプリケーション プールの設定と比較してください。予想されるハンドラ行のタイプミスに特に注意してください。使用しようとしている機能がインストールされていることを確認してください。MIME マップが有効になっていることを確認するか、コマンド ライン ツール appcmd.exe を使用して Web サイトの MIME マップを追加します。MIME タイプを設定するには、IIS Express インストール ディレクトリで次のコマンドを実行します。 appcmd set config /section:staticContent /+[fileExtension='string',mimeType='string'] 変数 fileExtension string はファイル名の拡張子であり、 variable mimeType string は、ファイル タイプの説明です。たとえば、拡張子が「.xyz」のファイルの MIME マップを追加するには、次のように入力します。 appcmd set config /section:staticContent /+[fileExtension='.xyz',mimeType='text/plain'] Web サーバーをリストに追加する前に、MIME マッピングが必要です。.CONFIG などの構成ファイルや、.ASP や .ASPX などの動的スクリプト ページは、直接ダウンロードしてはならず、常にハンドラーを介して処理する必要があります。データベース ファイルなどの他のファイルや、.XML や .MDF などの構成の保存に使用されるファイルは、構成情報の保存に使用されることがあります。これらのファイル タイプを有効にする前に、クライアントがこれらのファイル タイプをダウンロードできるかどうかを確認してください。ASP.NET をインストールします。このエラーに関する追加情報については、失敗した要求のトレース ログを確認してください。詳細については、ここをクリックしてください。拡張子が「.xyz」のファイルの MIME マップを追加するには: appcmd set config /section:staticContent /+[fileExtension='.xyz',mimeType='text/plain'] 警告: この MIME マッピングがリストに追加する前に、Web サーバーに必要です。.CONFIG などの構成ファイルや、.ASP や .ASPX などの動的スクリプト ページは、直接ダウンロードしてはならず、常にハンドラーを介して処理する必要があります。データベース ファイルなどの他のファイルや、.XML や .MDF などの構成の保存に使用されるファイルは、構成情報の保存に使用されることがあります。これらのファイル タイプを有効にする前に、クライアントがこれらのファイル タイプをダウンロードできるかどうかを確認してください。ASP.NET をインストールします。このエラーに関する追加情報については、失敗した要求のトレース ログを確認してください。詳細については、ここをクリックしてください。拡張子が「.xyz」のファイルの MIME マップを追加するには: appcmd set config /section:staticContent /+[fileExtension='.xyz',mimeType='text/plain'] 警告: この MIME マッピングがリストに追加する前に、Web サーバーに必要です。.CONFIG などの構成ファイルや、.ASP や .ASPX などの動的スクリプト ページは、直接ダウンロードしてはならず、常にハンドラーを介して処理する必要があります。データベース ファイルなどの他のファイルや、.XML や .MDF などの構成の保存に使用されるファイルは、構成情報の保存に使用されることがあります。これらのファイル タイプを有効にする前に、クライアントがこれらのファイル タイプをダウンロードできるかどうかを確認してください。ASP.NET をインストールします。このエラーに関する追加情報については、失敗した要求のトレース ログを確認してください。詳細については、ここをクリックしてください。

詳細なエラー情報: モジュール StaticFileModule 通知
ExecuteRequestHandler ハンドラー StaticFile エラー コード 0x80070032 要求された URL http: //localhost:64107/Settings/Settings.json 物理パス D:\GIT\RepoP_Paneon\Settings\Settings.json Logon Method Anonymous Logon User Anonymous Request Tracingディレクトリ
C:\Users\stefank\Documents\IISExpress\TraceLogFiles\REPOP_PANEON

詳細情報: このエラーは、要求された URL のファイル拡張子が、サーバーで構成されていない MIME タイプのものである場合に発生します。動的スクリプト ページ、データベース、または構成ファイルではないファイルのファイル拡張子に MIME タイプを追加できます。ハンドラを使用してこれらのファイル タイプを処理します。動的スクリプト ページ、データベース、または構成ファイルの直接ダウンロードを許可しないでください。詳細情報を見る »

4

4 に答える 4

170

さらにグーグルで調べて実験した結果、 で IIS 設定を定義する必要があることがわかりましたWeb.config

次の構成を追加した後:

  <system.webServer>
    <staticContent>
      <mimeMap fileExtension=".json" mimeType="application/json" />
    </staticContent>
  </system.webServer>

それは魅力のように機能します。

完全なセットアップ ファイルの例:

<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0"/>
  </system.web>
  <system.webServer>
    <staticContent>
      <mimeMap fileExtension=".json" mimeType="application/json" />
    </staticContent>
  </system.webServer>
</configuration>
于 2013-10-22T12:00:27.670 に答える
14

将来 IIS が json サポートを組み込む場合に備えて、削除タグを追加することをお勧めします。これは私の mimeMap の web.config セクションです。

<system.webServer>
  <staticContent>
      <remove fileExtension=".woff" />
      <remove fileExtension=".woff2" />
      <remove fileExtension=".json" />
      <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
      <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
      <mimeMap fileExtension=".json" mimeType="application/json" />
  </staticContent>
<system.webServer>
于 2015-08-06T03:55:17.807 に答える
6
  • 管理者権限で CMD を開きます。
  • 次の場所に移動します。

    cd C:\Program Files\IIS Express また
    cd C:\Program Files (x86)\IIS Express

  • コマンドを実行します。

    appcmd set config /section:staticContent /+[fileExtension='JSON',mimeType='application/x-javascript']

于 2015-03-13T11:30:30.250 に答える
6

Visual Studio 開発環境 (IIS Express を使用) とローカル IIS およびリモート サーバー (Azure WebSites など) を区別する必要がある場合があります。たとえば、IIS Express を具体的にターゲットにするには、次のように編集%USERPROFILE%\Documents\IISExpress\config\applicationhost.configsystem.webServer/staticContentます。

<mimeMap fileExtension=".json" mimeType="application/javascript" />

ローカル (イントラネット) IIS には既に JSON MIME タイプが定義されているため、この区別を行う必要があります。したがって、Azure Web サイトにデプロイするときは、次の変換を使用しますWeb.Release.config

<system.webServer>
    <staticContent>
        <mimeMap fileExtension=".json" mimeType="application/javascript" xdt:Transform="Insert" />
    </staticContent>
</system.webServer>
于 2015-06-09T22:35:03.163 に答える