私のサイトをアップロードしようとすると、次のエラーメッセージが表示されます。
認識されない属性「targetFramework」。属性名は大文字と小文字が区別されることに注意してください。
<compilation debug="true" targetFramework="4.0">
ローカルPCではサイトは正常に動作しますが、ホストにロードしてオンラインで表示しようとしたときに開きません。
私のサイトをアップロードしようとすると、次のエラーメッセージが表示されます。
認識されない属性「targetFramework」。属性名は大文字と小文字が区別されることに注意してください。
<compilation debug="true" targetFramework="4.0">
ローカルPCではサイトは正常に動作しますが、ホストにロードしてオンラインで表示しようとしたときに開きません。
回答:
これは通常targetFramework="4.0"
、web.configにの属性があるが、アプリプールがASP.NET 2.0を実行するように設定されている場合に発生します。このtargetFramework
属性はASP.NET 2.0では完全に認識されないため、2.0に変更しても期待した効果が得られません。
サポート/管理者に連絡し、AppPoolを4.0に切り替えてください。
属性を完全に削除することもできますが、サイトが4.0フレームワークでコーディングされている場合は、他の何かがエラーを引き起こすと確信しています。
フレームワークをIISに登録することが私にとってうまくいきました:
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -i
IIS内
アプリケーションプールをクリックします
DefaultAppPoolを右クリック--- >>アプリケーションプールのデフォルトを設定......---。NetバージョンをV 4.0に変更します。
Visual Studioメニュー:
ウェブサイト->スタートオプション->ビルドタブ->ドロップダウンボックスでターゲットフレームワークを選択(.NET FrameWork 4)
Windows Server 2008 R2でASP.Netを解決するには、IISにASP.Netを登録する必要がありました。以下に添付されているコマンドのスクリーンショット
cd /d C:\Windows\Microsoft.NET\Framework\v4.0.30319
iisreset /stop
aspnet_regiis -i
iisreset /start
%systemroot%\system32\inetsrv\appcmd set config /section:isapiCgiRestriction /[path='%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll'].allowed:True
%systemroot%\system32\inetsrv\appcmd set config /section:isapiCgiRestriction /[path='%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll'].allowed:True
IISではなくIIS Expressを使用しています。
問題は、{solution_folder} \。vs \ config \ applicationhost.configにあるapplicationhost.configファイルにありました。
アプリケーションプールエントリの1つにmanagedRuntimeVersion値「v2.0」がありました。「v4.0」に変更しましたが、正常に動作しました。
根本的な原因は、最近インストールしたNuGetパッケージの1つであると確信しています。
<system.applicationHost>
<applicationPools>
<add name="BadAppPool1" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
</applicationPools>
</system.applicationHost>
以前のバージョンのVSからVS2010および.NET 4.0に変換されたプロジェクトファイルで、失敗したMSBuildコンパイルからこのエラーが発生しました。これは実際にはWeb配置プロジェクトであり、私にとって効果的な解決策は、MSBuildファイルの先頭にあるPropertyGroupセクションに次のエントリを追加することでした。
<ProductVersion>10.0.11107</ProductVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
VS2010で他のタイプのプロジェクトが変換されると、これらは自動的に更新される可能性がありますが、変換後にWeb配置プロジェクトファイルから欠落していました。
.Net Framework 4.7.1を指しているアプリケーションをローカルで実行しているときにも同じ問題が発生しました。以下に示すように、バグは「認識されない属性TargetFrameWork」でした。
しかし、上記の答えのどれも私を助けませんでした。最後に、現在のポート(1413)の番号を他の値(60179)に変更すると、以下のように問題なく動作しましたが、実際の理由はわかりませんが、動作しました。
ファイルをコンパイルし、「targetFramework」の値が特定のバージョン、つまり4.0として設定されている場合、
ホストが.netフレームワークを実行していることを確認してください。
そうでない場合は、.netフレームワークをダウンロードしてください。
ダウンロード後、IISマネージャーで.netフレームワークの新しくダウンロードされたバージョンの拡張機能を使用するように自動的に設定されていない場合は、
IISマネージャーを介して、最近ダウンロードした.netフレームワークのフォルダーに移動して、拡張子を手動で追加します。
1. webサイトフォルダーを右クリック
2.「プロパティ」に移動します
3.「仮想ディレクトリ」の下の「構成」をクリックします
4.拡張子「.aspx」の実行可能パス(最近ダウンロードした.netフレームワークのバージョン以外のバージョンを指すパス)を、新しくダウンロードしたバージョンの.netフレームワークのフォルダーである正しいパスに編集します。 「aspnet_isapi.dll」ファイルを選択します。
5.OKをクリック!
次の2つの手順に従います。
.netフレームワークバージョンバージョン4.0を登録します(登録されていない場合)。
C:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319> aspnet_regiis -i
アプリプールで.netフレームワークをv4.0に変更します
ビルドサーバー上のJenkinsの[コンソール出力]ページに「認識できない属性 'targetFramework'」というエラーが表示されました。これは、いくつかのプロジェクトの「ターゲットフレームワーク」を「.NET Framework 3.5」から「.NET Framework 4」に変更し、変更をコミットした後です。
Jenkinsでは、プロジェクト設定を変更する必要がありました。このソリューションでは、「MSBuildバージョン」を「v3.5」から「v4.0」に変更する必要がありました。
独自のMSBUILD projファイルがあり、<AspNetCompiler>
タスクを使用している可能性があります。その場合はToolPath
、.NET4 を追加する必要があります。
<AspNetCompiler
VirtualPath="/MyFacade"
PhysicalPath="$(MSBuildProjectDirectory)\MyFacade\"
TargetPath="$(MSBuildProjectDirectory)\Release\MyFacade"
Updateable="true"
Force="true"
Debug="false"
Clean="true"
ToolPath="C:\Windows\Microsoft.NET\Framework\v4.0.30319\">
</AspNetCompiler>
レイヤー化の場合は、web.configファイル内のtargetFrameworkのバージョンを変更するだけで、その他の変更は必要ありません。