0

古いサイトを MVC 4 に移植しましたが、これまでのところ動作しています。ただし、変更されていないサードパーティのフォーラムもあります。IIS 7 では、フォーラム用に新しいアプリケーションを作成しました。また、独自のアプリケーション プールもあります (MVC は .NET4 で、フォーラムは .NET 2 です)。

アプリケーションはサーバー上の異なる物理ディレクトリにあり、ForumApp がサブアプリケーションである IIS ディレクトリ構造は次のようになります。

\RootMVCSite\
\RootMVCSite\bin
\RootMVCSite\[OTHERMVCFILESANDFOLDERS]
\RootMVCSite\web.config
\RootMVCSite\ForumApp\
\RootMVCSite\ForumApp\bin
\RootMVCSite\ForumApp\[OTHERFORUMAPPFILESANDFOLDERS]
\RootMVCSite\ForumApp\web.config

ただし、フォーラムにアクセスすると、次のエラーが表示されます。

Parser Error Message: Unrecognized attribute 'targetFramework'. Note that attribute names are case-sensitive.

Line 20:   <system.web>
Line 21:     <compilation targetFramework="4.0" />

紛らわしい部分は、サブアプリケーションが指しているフォーラム サイトではなく、ルート MVC サイトの web.config を調べていることです。これを修正するには、IIS または web.config で何をする必要がありますか? サブアプリがルート サイトの web.config を参照できないようにする方法はありますか?

4

2 に答える 2

1

私はそれを考え出した。location問題のある構成セクションをタグでラップすることにより、それらの設定はすべての子アプリケーションによって無視されます。

<location path="." inheritInChildApplications="false">
  <system.web>
    <compilation targetFramework="4.0" />
  </system.web>
  ...
</location>

この解決策に関して気をつけなければならないことがあれば、改善点やアドバイスを教えてください。

于 2013-09-13T15:36:44.277 に答える
0

IIS でそのサイトのアプリケーション プールを確認し、.NET Framework 4.0 をターゲットにしていることを確認してください。デフォルトでは、新しいアプリケーション プールは .NET 2.0 に設定されます。

于 2013-09-13T14:30:00.523 に答える