ASP.Netでオンラインプロジェクトをダウンロードしました。アプリケーションの実行中にエラーが発生する
アプリケーションレベルを超えて、allowDefinition = 'MachineToApplication'として登録されたセクションを使用すると、エラーになります。このエラーは、仮想ディレクトリがIISでアプリケーションとして構成されていないことが原因である可能性があります。
これを機能させるには、web.configまたは他の場所でどのような変更を行う必要がありますか?
ASP.Netでオンラインプロジェクトをダウンロードしました。アプリケーションの実行中にエラーが発生する
アプリケーションレベルを超えて、allowDefinition = 'MachineToApplication'として登録されたセクションを使用すると、エラーになります。このエラーは、仮想ディレクトリがIISでアプリケーションとして構成されていないことが原因である可能性があります。
これを機能させるには、web.configまたは他の場所でどのような変更を行う必要がありますか?
回答:
私はこの「喜び」に出会ったばかりです。リリースモードでWebアプリケーションを公開した直後に表示されるようです。
私が見つけた問題を一貫して回避する唯一の方法は、このチェックリストに従うことです。
MvcBuildViews
してここに到着しましたtrue
。
この投稿に遭遇しただけで、それは私に起こっていました。
ただ、Clean
プロジェクトとエラーが表示されなくなります。(VS2010のバグである必要があります)
obj
フォルダがクリアされない場合があります。これも時々削除する必要があります。
なし。IIS内でWebアプリケーションとしてWebサイトを配置したディレクトリを設定する必要があります。
このエラーは、プロジェクトをWebサイトとして開こうとしたときに発生します。Webサイトとプロジェクトのどちらを作成したかを判断する最も簡単な方法は、ソリューションフォルダー(つまり、コードを保存した場所)をチェックし、ルートディレクトリに* .slnファイルがあるかどうかを確認することです。 veプロジェクトを作成しました。
追加するために、Visual Studioメニューから[ファイル]、[ウェブサイトを開く]を選択して以前作成したプロジェクトを開こうとしたときに、このエラーが発生しました。代わりに。私は気がついたらすぐに直面しました:)
Visual Studio 2013ではしばらくこれに苦労しましたが、「仮想ディレクトリがIISでアプリケーションとして構成されていない」という例外の説明に従うだけで、 簡単に解決できます
私の場合、私はそう中にWebService
植えましIIS website
た
Convert to Application
Ok
WCFが復活しました。
エラーは、使用しているコードが仮想ディレクトリがIISで設定されることを期待していることを示唆しています。
ドキュメントを参照して、必要な仮想ディレクトリを追加します。web.config
(ルートディレクトリではなく)が含まれているディレクトリである必要があります。
<authentication mode="Forms"><forms name="..." loginUrl="~/Login/Login/" timeout="2880" /></authentication>
中に彼Web.config
を入れてViews
いたため、この問題が発生しました。
ビューのビルドが有効なMVCプロジェクトがある場合、解決策の1つはビルド前にobjフォルダーを削除することです。プロジェクトファイルに追加:
<Target Name="BeforeBuild">
<!-- Remove obj folder -->
<RemoveDir Directories="$(BaseIntermediateOutputPath)" />
<!-- Remove bin folder -->
<RemoveDir Directories="$(BaseOutputPath)" />
</Target>
これが記事です:ビルドやデプロイの前にbinやobjフォルダーを削除する方法
最近のweb.configの変更が間違ったweb.configファイルにある可能性があります。
<machineKey...>
プロパティが追加されたビュー/ web.configファイル。クリーンアップと再構築の数に関係なく、エラーは残りました。修正は、プロパティをルート/web.configに移動することでした。
このエラーが発生した場合
アプリケーションレベルを超えて、allowDefinition = 'MachineToApplication'として登録されたセクションを使用すると、エラーになります。このエラーは、仮想ディレクトリがIISでアプリケーションとして構成されていないことが原因である可能性があります
解決策
私はVS 2012で同じ問題がありました。
<MvcBuildViews>false</MvcBuildViews>
ある場合、1つの解決策は、コンパイラーによって生成されたプロジェクトのobjフォルダーの内容を削除することです。
MvcBuildViews
しtrue
、私は最初の場所でのエラーを得た方法です。
<MvcBuildViews>true</MvcBuildViews>
私の場合、プロジェクトをサブディレクトリに公開した後にのみ問題が発生しました。私は知識が不足しているため、web_publish
サブディレクトリをディレクトリ内に配置しましたweb_project
。
には、プロジェクトに含まれているものweb_publish
と同じも含まれていることは明らかですWeb.config
。ただし、は、ネストされたサブディレクトリでを検索するときに回避する必要があることをweb_project
認識していません。このようにして、sが複製され、エラーが表示されました。web_publish
Web.config
Web.config
解決策は私をweb_publish
どこかに置くことでした。
私の場合、そこにはウェブサイト全体の別のコピーを含む「バックアップ」フォルダがありました。これは別のものを意味しweb.config
ていたため、ビルドはこのエラーで失敗しました。「バックアップ」フォルダーを削除し、デバッグビルドとリリースビルドでクリーンソリューションを実行すると、エラーが消えました。
私の場合、
ソリューションには、6つのプロジェクト、1つのメインディレクトリ、および5つのサブディレクトリが含まれています。web.configを持つすべてのサブディレクトリ。
サブディレクトリ内でページを実行すると、同じエラーが発生しました。
この行をweb.configから削除しました。
<authentication mode="Windows"/>
それは私のために働いた。
.Net framework 2.0のプロジェクトをダウンロードしてVS2008で開きたい場合は、バージョンの問題である可能性があります。その後、最新バージョンにアップグレードする必要があり、VSは同じルートディレクトリにフォルダーのバックアップを作成します。ここで答えを得る。
おそらく、仮想フォルダーとして構成されていないサブasp.netプロジェクトフォルダーがプロジェクトフォルダー内にあります。IISで実行するようにプロジェクトを設定します。
ウェブサイト公開スクリプトに追加しました。最後に、Webサイトのフォルダーからobjフォルダーを削除します。
Webサイトまたはアプリケーションをサーバーで公開しているときにこの問題に直面した場合、私が使用した簡単な解決策は、ファイルを含むフォルダーをWebアプリケーションに変換することです。
Convert to Application
。
プロジェクトをデバッグモードで公開した後、VS 2013でも同じ問題が発生します。この問題は、obj /ファイルを削除することで解決しました
Visual Studioを介して、外部サーバーにFTP経由でWCFサービスを公開しました。ローカルで正常に機能し、内部サーバーにパブリッシュするときは外部サーバーにはパブリッシュしませんでした。解決策は、を提供せず に公開することでしたSite Path
(つまり、仮想ディレクトリのルートに直接公開します)。
私はすでに外部FTPクライアントを介してファイルをルートに移動しようとしたので、なぜそれが機能したのかはわかりません。たぶんそれは、FabianValの場合のように、公開プロファイルの何かだったのかもしれません。しかし、この問題ですべての日が無駄になってしまったので、すぐに理解を急ぐ必要があるので、私はこの時点でもうテストの気分ではありません。
私は上記のすべての解決策を試しましたが、どれも私の問題に役立ちませんでした。(この問題には1000の解決策があると確信しています)私のシナリオでは、テストで使用したWCF Webサービスを運用環境に公開しようとしました。
ただし、本番環境ではHTTPSのみであること、つまりすべてをHTTPSにリダイレクトすることを理解できませんでした。結局のところ、HTTPSではなくHTTPを介してサービスをポイントしていたため、エラーが発生しました。このシナリオでの解決策は、アドレスプロトコルを単にHTTPではなくHTTPSに変更することでした。
それがこの問題を理解しようとしている貧しい魂の助けとなることを願っています。
obj
。