私は自分のサイトをアップロードしようとしていますが、このエラーメッセージが表示されます。
認識されない属性 'targetFramework'。属性名では大文字と小文字が区別されることに注意してください。
<compilation debug="true" targetFramework="4.0">
このサイトは私のローカルPCでも問題なく動作しますが、ホストにロードしてオンラインで表示しようとしたときには開きません。
これは通常、web.configにtargetFramework="4.0"
という属性があり、App PoolがASP.NET 2.0を実行するように設定されている場合に発生します。 targetFramework
属性は、ASP.NET 2.0ではまったく認識されていないため、2.0に変更しても望みどおりの効果は得られません。
サポート/管理者に連絡して、AppPoolを4.0に切り替えてください。
属性を完全に削除することもできますが、サイトが4.0 Frameworkでコーディングされている場合は、それ以外のものでエラーが発生することは間違いありません。
IISを使ってフレームワークを登録することは私にとってうまくいったことです:
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -i
IISを開き(実行中にinetmgrと入力します)、アプリケーションプールの設定を変更します。この大きな画像を表示するには右クリックして画像を新しいタブで開きます
IISで
アプリケーションプールをクリックします
DefaultAppPoolを右クリックしてください。
Visual Studioのメニューで
ウェブサイト - >スタートオプション - >ビルドタブ - >ドロップダウンボックスからTarget Frameworkを選択する(.NET FrameWork 4)
私の最初のWebサービスを公開している間、私は同じ問題に直面していました。私は単にこれをすることによってそれを解決しました:
IISを開く
アプリケーションプールをクリックします
DefaultAppPool =>アプリケーションプールのデフォルト設定=> .NetバージョンをV 4.0に変更を右クリックします。 (あなたはまたあなたのアプリケーションの.Net Frameworkバージョンを具体的に変更することができます)
うまくいけば、うまくいきます。
Windows Server 2008 R2でASP.Netを解決するにはIISに登録する必要がありました。下記のコマンドのスクリーンショット
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
アプリケーションプールをclassicではなくtarget framework 4.0に変更します。
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>
プロジェクトを開く - > press Shift + F4 (プロパティページを開く) - >選択 ビルド - > in ターゲットフレームワーク chose .NET Framework 4 - > OK
.Net Framework v4.0.3xxxxxを選択して新しいプールを作成します。
パイプライン管理モードを使用する:統合
あなたのサイトに割り当てれば完了です。
このエラーは、以前のバージョンのVSからVS2010および.NET 4.0に変換されたプロジェクトファイルで、失敗した MSBuild compileから発生しました。それは実際にはWeb配置プロジェクトでした、そして私のために働いた解決策は MSBuild ファイルの始めに PropertyGroup セクションに以下のエントリーを追加することでした:
<ProductVersion>10.0.11107</ProductVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
他の種類のプロジェクトがVS2010で変換されると、これらは自動的に更新されますが、変換後のWeb Deploymentプロジェクトファイルには含まれていませんでした。
この問題を解決するには、コントロールパネルの[サイトツール]セクションにある[ASP.NETバージョン]アイコンをクリックしてフレームワークを4.0に切り替えます。
私のしたこと:アプリケーションプールの値を以前の値からDefaultAppPoolに変更しました。これは詳細設定(Webサイト - > Webサイトの管理 - >詳細設定>)で行います。
VS 2010でこれができました。
.slnファイルを編集し、 TargetFrameworkMoniker を変更して ".NETFramework、Version%3Dv4.0" に割り当てます。
この問題で、新しいアプリを古いIISボックスにデプロイしました。調査の結果、v4.5.1ランタイムがインストールされましたが、アプリにはv4.5.2が必要でした。
正しいバージョンのASP .Netランタイムのインストール以外に必要なものはありません。
次の2つの手順では、Visual StudioとIIS Expressキャッシュを強制的に更新し、通常は私の同じような問題を解決します。
ファイルをコンパイルしたときに "targetFramework"の値が特定のバージョン、つまり4.0に設定されているとします。
ホストが述べたのと同じバージョンの.netフレームワークを実行していることを確認してください。
そうでない場合は、.netフレームワークをダウンロードしてください。
ダウンロード後、IISマネージャに自動的に設定されていない場合は、新しくダウンロードされたバージョンの.netフレームワークの拡張子を使用するようにします。
最近ダウンロードした.netフレームワークのフォルダに移動して、手動で拡張子を追加します。THROUGH IIS manager:
1.ウェブサイトフォルダを右クリック
2.「プロパティ」へ
3. "仮想ディレクトリ"の下にある "設定"をクリック
拡張子「.aspx」の実行可能パス(そのパスは、最近ダウンロードされた.netフレームワークのバージョン以外のバージョンを指している)を、正しいダウンロードパスの.netフレームワークのフォルダである正しいパスに編集するそして、 "aspnet_isapi.dll"ファイルを選択してください。
5. [OK]をクリックします。
あなたはあなた自身のMSBUILD projファイルを持っていて、<AspNetCompiler>
タスクを使っているかもしれません。その場合は、.NET4のToolPath
を追加する必要があります。
<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>
ビルドサーバーのJenkinsの 'コンソール出力'ページにあるエラー "Unrecognized attribute 'targetFramework'"を見ました。これは、いくつかのプロジェクトの「ターゲットフレームワーク」を「.NET Framework 3.5」から「.NET Framework 4」に変更し、変更をコミットした後です。
Jenkinsでは、プロジェクト設定を変更する必要がありました。解決策として、 'MSBuildバージョン'を 'v3.5'から 'v4.0'に変更しなければなりませんでした。
私は同じ問題を抱えていました、そして、私はあなたのアプリプールの全てを同時に更新するためにこの素晴らしいpoweshellスクリプトを見つけました: https://gallery.technet.Microsoft.com/scriptcenter/How-to-set-the-IIS- 9c295a20
必ず$IISAppPoolDotNetVersion = "v4.0"
変数を一番上に設定してください。
階層化のために、web.configファイルのtargetFrameworkのバージョンを変更するだけで、他のものは変更する必要がありません。
「Target Framework 4.0」を削除して括弧を閉じるだけです。
それが動作します
.Net FrameWorkのインストール後にIISをインストールした場合。 IIS用に.netフレームワークを再度インストールする必要があります。だから私たちがする必要があるのはaspnet_regiis -i
を実行することだけです。それが役に立つことを願っています。
次の2つのステップに従ってください。
.net framework version version 4.0を登録します(登録されていない場合)。
C:¥WINDOWS¥Microsoft.NET¥Framework¥v4.0.30319> aspnet_regiis -i
アプリプールで、.netフレームワークをv4.0に変更します。