Visual Studio または Visual Web Developer を使用した SQL Server Compact を含む ASP.NET Web アプリケーションの配置: トラブルシューティング (12/12)

著者: Tom Dykstra

スターター プロジェクトのダウンロード

このチュートリアル シリーズでは、Visual Studio 2012 RC または Visual Studio Express 2012 RC for Web を使用して、SQL Server Compact データベースを含む ASP.NET Web アプリケーション プロジェクトを、配置 (発行) する方法について説明します。 Web 発行の更新をインストールすれば、Visual Studio 2010 を使用することもできます。 シリーズの概要については、シリーズの最初のチュートリアルを参照してください。

Visual Studio 2012 の RC リリース以降に導入された配置機能の紹介や、SQL Server Compact 以外の SQL Server エディションの配置方法、Windows Azure Web サイトへの配置方法などを解説したチュートリアルは、「Visual Studio を使用した ASP.NET の Web 配置」をご覧ください。

このページでは、Visual Studio を使用して ASP.NET Web アプリケーションを配置するときに発生する可能性のある一般的な問題について説明します。 それぞれについて、1 つ以上の考えられる原因と、対応する解決策が提供されます。

'/' アプリケーションのサーバー エラー。現在のカスタム エラー設定により、エラーの詳細がリモートで表示されない

シナリオ

リモート ホストにサイトを配置すると、Web.config ファイルの customErrors 設定に言及するエラー メッセージが表示されますが、エラーの実際の原因は示されません。

Server Error in '/' Application.
Runtime Error 

Description: An application error occurred on the server. The current custom error settings 
for this application prevent the details of the application error from being viewed remotely 
(for security reasons). It could, however, be viewed by browsers running on the local server 
machine. 

Details: To enable the details of this specific error message to be viewable on remote machines,
please create a <customErrors> tag within a "web.config" configuration file located in the
root directory of the current web application. This <customErrors> tag should then have its
"mode" attribute set to "Off".

考えられる原因と解決策

ASP.NET の既定では、Web アプリケーションがローカル コンピューターで実行されている場合にのみ、詳細なエラー情報が表示されます。 一般に、Web アプリケーションがインターネット経由で一般公開されている場合は、詳細なエラー情報を表示しないようにする必要があります。これは、ハッカーがこの情報を使用してアプリケーションの脆弱性を見つける可能性があるためです。 ただし、サイトまたは更新プログラムをサイトに配置するときに何かの問題が発生することがあり、その場合は実際のエラー メッセージを取得する必要があります。

アプリケーションがリモート ホストで実行されたときに詳細なエラー メッセージを表示できるようにするには、Web.config ファイルを編集して customErrors モードをオフに設定し、アプリケーションを再配置して、アプリケーションをもう一度実行します。

  1. アプリケーションの Web.config ファイルで system.web 要素に customErrors 要素が含まれている場合は、mode 属性を "off" に変更します。 それ以外の場合は、次の例に示すように、mode 属性を "off" に設定した customErrors 要素を system.web 要素に追加します。

    <configuration>
      <system.web>
        <customErrors mode="off"/>
      </system.web>
    </configuration>
    
  2. アプリケーションをデプロイします。

  3. アプリケーションを実行し、エラーが発生する原因となった操作を繰り返します。 これで、実際のエラー メッセージが何であるかを確認できます。

  4. エラーを解決したら、元の customErrors 設定を復元し、アプリケーションを再配置します。

SQL Server Compact を使用する Web ページでアクセスが拒否される

シナリオ

SQL Server Compact を使用するサイトを配置し、データベースにアクセスする配置済みサイトでページを実行すると、次のエラー メッセージが表示されます。

Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

考えられる原因と解決策

サーバー上の NETWORK SERVICE アカウントは、bin\amd64 または bin\x86 フォルダー内にある SQL Service Compact ネイティブ バイナリを読み取れる必要がありますが、これらのフォルダーの読み取りアクセス許可がありません。 bin フォルダーに NETWORK SERVICE の読み取りアクセス許可を設定し、サブフォルダーにそのアクセス許可を拡張します。

アクセス許可が不十分なため、構成ファイルを読み取れない

シナリオ

Visual Studio の発行ボタンをクリックしてローカル コンピューター上の IIS にアプリケーションを配置すると、発行が失敗し、[出力] ウィンドウに次のようなエラー メッセージが表示されます。

An error occurred when reading the IIS Configuration File 'MACHINE/REDIRECTION'. 
The identity performing this operation was ... Error: Cannot read configuration file due to insufficient permissions.

考えられる原因と解決策

ローカル コンピューターで IIS に対してワンクリック発行を使用するには、管理者のアクセス許可を持つ Visual Studio を実行している必要があります。 Visual Studio を閉じ、管理者権限で再起動します。

接続先のコンピューターに接続できませんでした...指定されたプロセスの使用

シナリオ

Visual Studio の発行ボタンをクリックしてアプリケーションを配置すると、発行が失敗し、[出力] ウィンドウに次のようなエラー メッセージが表示されます。

Web deployment task failed.(Could not connect to the destination computer ("<server URL>") using the specified process
("The Web Management Service"). This can happen if a proxy server is interrupting communication with the destination server. 
Disable the proxy server and try again.) ... The remote server returned an error: (502) Bad Gateway.

考えられる原因と解決策

プロキシ サーバーが移行先サーバーとの通信を中断しています。 Windows コントロール パネルまたは Internet Explorer で、[インターネット オプション] を選択し、[接続] タブを選択します。[インターネットのプロパティ] ダイアログ ボックスで、[LAN の設定] をクリックします。 [ローカル エリア ネットワーク (LAN) の設定] ダイアログ ボックスで、[設定を自動的に検出する] チェック ボックスをオフにします。 次に、発行ボタンをもう一度クリックします。

問題が解決しない場合は、システム管理者に問い合わせて、プロキシまたはファイアウォールの設定で何ができるかを確認してください。 この問題は、Web 配置で Web 管理サービスの配置に標準以外のポートが使用されるために発生します (8172)。他の接続の場合、Web 配置ではポート 80 が使用されます。 サード パーティのホスティング プロバイダーに配置する場合、通常は Web 管理サービスを使用します。

既定の .NET 4.0 アプリケーション プールが存在しない

シナリオ

.NET Framework 4 を必要とするアプリケーションを配置すると、次のエラー メッセージが表示されます。

The default .NET 4.0 application pool does not exist or the application could not be added. 
Please verify that ASP.NET 4.0 is installed on this machine.

考えられる原因と解決策

ASP.NET 4 が IIS にインストールされていません。 配置先のサーバーが開発用コンピューターであり、Visual Studio 2010 がインストールされている場合、ASP.NET 4 はそのコンピューターにインストールされますが、IIS にはインストールされない可能性があります。 配置先のサーバーで、管理者特権のコマンド プロンプトを開き、次のコマンドを実行して IIS ASP.NET 4 をインストールします。

cd %windir%\Microsoft.NET\Framework\v4.0.30319
aspnet_regiis.exe –iru

既定のアプリケーション プールの .NET Framework バージョンを手動で設定する必要がある場合もあります。 詳細については、「テスト環境としての IIS への配置」チュートリアルを参照してください。

初期化文字列の形式が仕様に適合しません。インデックス 0 で始まっています。

シナリオ

ワンクリック発行を使用してアプリケーションを配置した後、データベースにアクセスするページを実行するときに、次のエラー メッセージが表示されます。

Format of the initialization string does not conform to specification starting at index 0.

考えられる原因と解決策

配置されたサイトで Web.config ファイルを開き、次の例のように、接続文字列の値が $(ReplaceableToken_ で始まっているかどうかを確認します。

<connectionStrings>
  <add name="DefaultConnection" connectionString="$(ReplaceableToken_DefaultConnection-Web.config Connection String_0)" providerName="System.Data.SqlServerCe.4.0" />
  <add name="SchoolContext" connectionString="$(ReplaceableToken_SchoolContext-Web.config Connection String_0)" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>

接続文字列がこの例のようになっている場合は、プロジェクト ファイルを編集し、すべてのビルド構成の PropertyGroup 要素に次のプロパティを追加します。

<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>

その後、アプリケーションを再配置します。

HTTP 500 内部サーバー エラー

シナリオ

配置されたサイトを実行すると、エラーの原因を示す具体的な情報なしで、次のエラー メッセージが表示されます。

HTTP Error 500 - Internal Server Error.

考えられる原因と解決策

500 エラーの原因は多数ありますが、これらのチュートリアルに従う場合に考えられる原因の 1 つは、いずれかの XML 変換ファイルの間違った場所に、XML 要素が配置されていることです。 たとえば、<configuration> の直下ではなく、<system.web> の下に <location> 要素を挿入する変換を配置すると、このエラーが発生します。 その場合の解決策は、XML 変換ファイルを修正して再配置することです。

HTTP 500.21 内部サーバー エラー

シナリオ

配置されたサイトを実行すると、次のエラー メッセージが表示されます。

HTTP Error 500.21 - Internal Server Error. 
Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list.

考えられる原因と解決策

ターゲットを配置したサイトは ASP.NET 4 ですが、ASP.NET 4 はサーバー上の IIS に登録されていません。 サーバーで管理者特権のコマンド プロンプトを開き、次のコマンドを実行して ASP.NET 4 を登録します。

cd %windir%\Microsoft.NET\Framework\v4.0.30319
aspnet_regiis.exe –iru

既定のアプリケーション プールの .NET Framework バージョンを手動で設定する必要がある場合もあります。 詳細については、「テスト環境としての IIS への配置」チュートリアルを参照してください。

App_Data で SQL Server Express Database を開く際にログインに失敗した

シナリオ

App_Data フォルダー内の .mdf ファイルとして SQL Server Express データベースを指すように Web.config ファイルの接続文字列を更新した場合、アプリケーションを初めて実行すると、次のエラー メッセージが表示されます。

System.Data.SqlClient.SqlException: Cannot open database "DatabaseName" requested by the login. The login failed.

考えられる原因と解決策

.mdf ファイルの名前は、以前にコンピューターに存在していた SQL Server Express データベースがあった場合、その既存のデータベースの .mdf ファイルを削除済みであっても、同じ名前を使用することはできません。 .mdf ファイルの名前を、データベース名としてこれまで使用されたことがない名前に変更し、新しい名前を使用するように Web.config ファイルを変更します。 代わりに、SQL Server Management Studio Express を使用して、以前にあった SQL Server Express データベースを削除することもできます。

モデルの互換性を確認できない

シナリオ

新しい SQL Server Express データベースを指すように Web.config ファイル接続文字列を更新した場合、アプリケーションを初めて実行すると、次のエラー メッセージが表示されます。

Model compatibility cannot be checked because the database does not contain model metadata. 
Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions.

考えられる原因と解決策

Web.config ファイルに配置したデータベース名が、以前にコンピューターで使用されていたことがあった場合は、データベースとが既に存在し、いくつかのテーブルがその中に存在している可能性があります。 これまでコンピューターで使用されたことがない新しい名前を選択し、その新しいデータベース名を使用するために、Web.config ファイルがこれを指すように変更します。 代わりに、SQL Server Management Studio Express を使用して既存のデータベースを削除することもできます。

スクリプトがユーザーまたはロールの作成を試みたときの SQL エラー

シナリオ

[SQL のパッケージ化/公開] タブで構成されたデータベースの配置を使用しており、配置中に実行される SQL スクリプトにはユーザーの作成コマンドまたはロールの作成コマンドが含まれている場合、これらのコマンドの実行時にスクリプトの実行が失敗します。 次のような詳細なメッセージが表示される場合があります。

The approximate location of the error was between lines '1' and '3' of the script. 
The verbose log may have more information about the error. The command started with:
CREATE USER [user2] FOR LOGIN [user2] WITH DEFAULT
Error: User does not have permission to perform this action.

このエラーが、[Web を公開] ウィザードでデータベースの配置を構成したときに発生し、[SQL のパッケージ化/公開] タブではない場合は、構成と配置に関するフォーラムでスレッドを作成すると、このトラブルシューティング ページにソリューションが追加されます。

考えられる原因と解決策

配置の実行に使用しているユーザー アカウントに、ユーザーまたはロールを作成するアクセス許可がありません。 たとえば、ホスティング会社は、db_datareaderdb_datawriterdb_ddladmin ロールを、利用者のために設定したユーザー アカウントに割り当てることがあります。 これらはほとんどのデータベース オブジェクトを作成するのに十分ですが、ユーザーまたはロールを作成する場合には十分ではありません。 このエラーを回避する方法の 1 つは、データベースの配置からユーザーとロールを除外することです。 これを行うには、データベースの自動生成されたスクリプトの PreSource 要素を編集して、次の属性を含めることができます。

CopyAllUsers=false, CopyAllRoles=false

プロジェクト ファイルの PreSource 要素を編集する方法については、「方法: プロジェクト ファイルの配置設定を編集する」を参照してください。 開発データベース内のユーザーまたはロールがターゲット データベースに存在する必要がある場合は、ホスティング プロバイダーにお問い合わせください。

配置中にカスタム スクリプトを実行するときの SQL Server タイムアウト エラー

シナリオ

配置中にカスタム SQL スクリプトを実行するように指定し、Web 配置でそれらを実行すると、タイムアウトになります。

考えられる原因と解決策

トランザクション モードが異なる複数のスクリプトを実行すると、タイムアウト エラーが発生する可能性があります。 既定では、自動的に生成されたスクリプトはトランザクションで実行されますが、カスタム スクリプトでは実行されません。 [SQL のパッケージ化/公開] タブで [既存のデータベースからのデータまたはスキーマの取得] オプションを選択し、カスタム SQL スクリプトを追加する場合は、すべてのスクリプトで同じトランザクション設定が使用されるように、一部のスクリプトのトランザクション設定を変更する必要があります。 詳細については、「方法: Web アプリケーション プロジェクトと共にデータベースを配置する」を参照してください。

すべてが同じになるようにトランザクション設定を構成しても、このエラーが発生する場合は、考えられる回避策は、スクリプトを個別に実行することです。 [SQL のパッケージ化/公開] タブの [データベース スクリプト] グリッドで、タイムアウト エラーの原因となるスクリプトの [組み込み] チェック ボックスをオフにしてから、プロジェクトを発行します。 次に、[データベース スクリプト] グリッドに戻り、そのスクリプトの [組み込み] チェック ボックスをオンにして、他のスクリプトの [組み込み] チェック ボックスをオフにします。 次に、プロジェクトをもう一度発行します。 今度は、発行時に、選択したカスタム スクリプトのみが実行されます。

サイト マニフェストのストリーム データはまだ利用可能ではない

シナリオ

deploy.cmd ファイルと t (テスト) オプションを使用してパッケージをインストールすると、次のエラー メッセージが表示されます。

Error: The stream data of 'sitemanifest/dbFullSql[@path='C:\TEMP\AdventureWorksGrant.sql']/sqlScript' is not yet available.

考えられる原因と解決策

エラー メッセージは、コマンドがテスト レポートを生成できないことを意味します。 ただし、y (実際のインストール) オプションを使用すると、コマンドが実行される可能性があります。 このメッセージは、テスト モードでのコマンドの実行に問題があることだけを示しています。

このアプリケーションには ManagedRuntimeVersion v4.0 が必要

シナリオ

配置しようとすると、次のエラー メッセージが表示されます。

エラー: 'sitemanifest/dbFullSql[@path='C:\TEMP\AdventureWorksGrant.sql']/sqlScript' のストリーム データはまだ利用可能ではありません。 使用しようとしているアプリケーション プールの 'managedRuntimeVersion' プロパティが 'v2.0' に設定されています。 このアプリケーションには 'v4.0' が必要です。

考えられる原因と解決策

ASP.NET 4 が IIS にインストールされていません。 配置先のサーバーが開発用コンピューターであり、Visual Studio 2010 がインストールされている場合、ASP.NET 4 はそのコンピューターにインストールされますが、IIS にはインストールされない可能性があります。 配置先のサーバーで、管理者特権のコマンド プロンプトを開き、次のコマンドを実行して IIS ASP.NET 4 をインストールします。

cd %windir%\Microsoft.NET\Framework\v4.0.30319
aspnet_regiis.exe –i

Microsoft.Web.Deployment.DeploymentProviderOptions をキャストできない

シナリオ

パッケージを配置すると、次のエラー メッセージが表示されます。

Unable to cast object of type 'Microsoft.Web.Deployment.DeploymentProviderOptions' to 'Microsoft.Web.Deployment.DeploymentProviderOptions'.

考えられる原因と解決策

Web 配置 1.1 UI を使用して IIS マネージャーから Web 配置 2.0 がインストールされているサーバーに配置しようとしています。 IIS リモート管理ツールを使用してパッケージをインポートして配置する場合は、接続を確立するときに [追加された新機能] ダイアログ ボックスをオンにします。 (このダイアログ ボックスは、接続が最初に確立されたときに 1 回だけ表示される場合があります。接続をクリアしてやり直すには、IIS マネージャーを閉じ、コマンド プロンプトで「inetmgr /reset」と入力してもう一度起動します。)一覧表示されている機能の 1 つが Web 配置 UI で、バージョン番号が 8 未満の場合、配置しようとしているサーバーには、1.1 バージョンと 2.0 バージョンの両方の Web 配置がインストールされている可能性があります。 2.0 がインストールされているクライアントから配置するには、サーバーに Web 配置 2.0 のみがインストールされている必要があります。 この問題を解決するには、ホスティング プロバイダーに問い合わせる必要があります。

SQL Server Compact のネイティブ コンポーネントを読み込めない

シナリオ

配置されたサイトを実行すると、次のエラー メッセージが表示されます。

Unable to load the native components of SQL Server Compact corresponding to the ADO.NET provider of version 8482. 
Install the correct version of SQL Server Compact. Refer to KB article 974247 for more details.

考えられる原因と解決策

配置されたサイトには、amd64 サブフォルダーおよび x86 サブフォルダーと、アプリケーションの bin フォルダーの下のそれらの中にネイティブ アセンブリがありません。 SQL Server Compact がインストールされているコンピューターでは、ネイティブ アセンブリは C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private にあります。 Visual Studio プロジェクトの正しいフォルダーに正しいファイルを取得する最善の方法は、NuGet SqlServerCompact パッケージをインストールすることです。 パッケージのインストールでは、ネイティブ アセンブリを amd64 および x86 にコピーするビルド後スクリプトが追加されます。 ただし、これらを配置するには、手動でプロジェクトに含める必要があります。 詳細については、SQL Server Compact の配置に関するチュートリアルを参照してください。

Entity Framework Code First アプリケーションを配置した後の "パスが無効です" エラー

シナリオ

Entity Framework Code First Migrations を使用するアプリケーションと、データベースを App_Data フォルダー内のファイルに格納する SQL Server Compact などの DBMS を配置します。 最初の配置後にデータベースを作成するように Code First Migrations を構成しました。 アプリケーションを実行すると、次の例のようなエラー メッセージが表示されます。

The path is not valid. Check the directory for the database. [Path = c:\inetpub\wwwroot\App_Data\DatabaseName.sdf ]

考えられる原因と解決策

Code First はデータベースを作成しようとしていますが、App_Data フォルダーは存在しません。 配置時に App_Data フォルダーに何もファイルがなかったか、[プロジェクトのプロパティ] ウィンドウの [Web のパッケージ化/発行] タブで [App_Data の除外] を選択しました。 サーバーにコピーするファイルがフォルダーに存在しない場合、配置プロセスではサーバー上にフォルダーは作成されません。 サイトにデータベースが既に設定されており、発行プロファイルの [ターゲットで追加ファイルを削除する] を選択した場合、配置プロセスによってそれらのファイルと App_Data フォルダー自体が削除されます。 この問題を解決するには、App_Data フォルダーに .txt ファイルなどのプレースホルダー ファイルを配置し、[App_Data の除外] が選択されていないことを確認してから、再配置します。

"基になる RCW から分離された COM オブジェクトを使用できません。"

シナリオ

ワンクリック発行を使用してアプリケーションを配置すると、次のエラーが表示されます。

Web deployment task failed. (Could not complete the request to remote agent URL 'https://serverurl.com/msdeploy.axd?site=sitename'.)
Could not complete the request to remote agent URL 'https://url/msdeploy.axd?site=sitename'.
The request was aborted: The request was canceled.
COM object that has been separated from its underlying RCW cannot be used.

考えられる原因と解決策

通常、Visual Studio を閉じて再起動するだけで、このエラーを解決できます。

発行に使用されるユーザー資格情報に setACL 機関がないため、配置が失敗する

シナリオ

発行が失敗し、フォルダーのアクセス許可を設定する権限がないことを示すエラーが表示されます (使用しているユーザー アカウントに setACL 権限がありません)。

考えられる原因と解決策

既定では、Visual Studio はサイトのルート フォルダーに対する読み取りアクセス許可を設定し、App_Data フォルダーに対する書き込みアクセス許可を設定します。 サイト フォルダーの既定のアクセス許可が正しく、設定する必要がないことがわかっている場合は、<IncludeSetACLProviderOn Destination>False</IncludeSetACLProviderOnDestination> を発行プロファイル ファイル (単一のプロファイルに影響を与える) または wpp.targets ファイル (すべてのプロファイルに影響を与える) に追加することで、この動作を無効にします。 これらのファイルを編集する方法については、プロファイル (.pubxml) ファイルの配置設定を編集する方法を参照してください。

アプリケーションがアプリケーション フォルダーに書き込もうとしたときにアクセス拒否エラーが発生する

シナリオ

いずれかのアプリケーション フォルダーでファイルを作成または編集しようとすると、そのフォルダーに対する書き込み権限がないため、アプリケーション エラーが発生します。

考えられる原因と解決策

既定では、Visual Studio はサイトのルート フォルダーに対する読み取りアクセス許可を設定し、App_Data フォルダーに対する書き込みアクセス許可を設定します。 アプリケーションでサブフォルダーへの書き込みアクセスが必要な場合は、「フォルダーのアクセス許可を設定する」と「運用環境への配置」のチュートリアルに示すように、そのフォルダーのアクセス許可を設定できます。 アプリケーションでサイトのルート フォルダーへの書き込みアクセスが必要な場合は、<IncludeSetACLProviderOn Destination>False</IncludeSetACLProviderOnDestination> を発行プロファイル ファイル (単一のプロファイルに影響を与える) または wpp.targets ファイル (すべてのプロファイルに影響を与える) に追加して、ルート フォルダーに読み取り専用アクセスを設定できないようにする必要があります。 これらのファイルを編集する方法については、プロファイル (.pubxml) ファイルの配置設定を編集する方法を参照してください。

構成エラー - targetFramework 属性が、インストールされているバージョンの .NET Framework より後のバージョンを参照する

シナリオ

ASP.NET 4.5 をターゲットとする Web プロジェクトを正常に発行しましたが、アプリケーションを実行すると (Web.config ファイルで customErrors モードが "off" に設定されている)、次のエラーが発生します。

The 'targetFramework' attribute in the <compilation> element of the Web.config 
file is used only to target version 4.0 and later of the .NET Framework (for 
example, '<compilation targetFramework="4.0">'). The 'targetFramework' attribute 
currently references a version that is later than the installed version of the 
.NET Framework. Specify a valid target version of the .NET Framework, or install 
the required version of the .NET Framework.

エラー ページの [ソース エラー] ボックスでは、エラーの原因として Web.config の次の行が強調表示されます。

<compilation targetFramework="4.5" />

考えられる原因と解決策

サーバーは、ASP.NET 4.5 をサポートしていません。 ホスティング プロバイダーに問い合わせて、ASP.NET 4.5 のサポートをいつ追加できるかを確認してください。 サーバーをアップグレードすることを選択できない場合は、代わりに ASP.NET 4 以前を対象とする Web プロジェクトを配置する必要があります。ASP.NET 4 以前の Web プロジェクトを同じ変換先に配置する場合は、[Web を公開] ウィザードの [設定] タブで [ターゲットで追加ファイルを削除する] チェックボックスをオンにします。 [ターゲットで追加ファイルを削除する] を選択しない場合は、[構成エラー] ページが表示されます。

プロジェクトの [プロパティ] ウィンドウにはターゲット フレームワークのドロップダウン リストが含まれていますが、.NET Framework 4.5 から .NET Framework 4 に変更するだけでは、この問題を解決できません。 ターゲット フレームワークを以前のフレームワーク バージョンに変更しても、プロジェクトはそれ以降のフレームワーク バージョンのアセンブリへの参照を持ち、プロジェクトは実行されません。 これらの参照を手動で変更するか、.NET Framework 4 以前を対象とする新しいプロジェクトを作成する必要があります。 詳細については、Web サイトを対象とする .NET Framework に関して参照してください。