web-dev-qa-db-ja.com

エラー:allowDefinition = 'MachineToApplication'がアプリケーションレベルを超えています

私はASP.Netでオンラインプロジェクトをダウンロードしました。アプリケーションの実行中にエラーが発生しました

アプリケーションレベルを超えてallowDefinition = 'MachineToApplication'として登録されているセクションを使用するとエラーになります。このエラーは、仮想ディレクトリがIISでアプリケーションとして構成されていないことが原因で発生する可能性があります。

これを機能させるには、web.configまたは他の場所でどのような変更を行う必要がありますか?

189
Deepali

私はこの「喜び」に遭遇したばかりです。リリースモードでWebアプリケーションを公開した直後に表示されるようです。

私が見つけた問題を常に解決する唯一の方法は、このチェックリストに従うことです。

  1. ソリューションをリリースモードに設定しながら、ソリューションをクリーンにします。
  2. ソリューションがデバッグモードに設定されている間に、ソリューションをクリーンにします。
  3. ソリューションがデバッグモードに設定されている間にビルドします。
98
John Reilly

遭遇してください この記事 そしてそれは私に起こっていました。
プロジェクトをCleanするだけでエラーは解決します。 (VS2010のバグでなければなりません)

83
Eduardo Molteni

私のウェブサイトの2番目のバージョンを構築するとき、私はちょうどこの問題を抱えています。最初に作ったときには起こりませんでした。

Binフォルダとobjフォルダを削除し、クリーンソリューションを実行して、今度は問題なく再構築しました。

24
xiecs

無し。 Webサイトを配置したディレクトリを IIS内のWebアプリケーション として設定する必要があります。

20
Will

このエラーは、Webサイトとしてプロジェクトを開こうとしたときに発生します。 Webサイトとプロジェクトのどちらを作成したかを判断する最も簡単な方法は、ソリューションフォルダ(コードを保存した場所)を確認し、ルートディレクトリに* .slnファイルがあるかどうかを確認することです。プロジェクトを作成しました。

ちなみに、私はVisual Studioのメニューから[ファイル]、[Webサイトを開く]を選択してしばらくして作成したプロジェクトを開こうとしたときに、このエラーに遭遇しました。代わりに。気がついたらすぐに顔をしかめました:)

16
Pete

Visual Studio 2013で私はしばらくこれに苦労していて、解決するのはかなり簡単ですただ例外が言っていることに従ってください"仮想ディレクトリIISでアプリケーションとして設定されていません "

私の場合はWebServiceIIS websiteの中に植えました。

  1. IIS managerでウェブサイトを開きました
  2. wCFフォルダを右クリックした
  3. Convert to Applicationをクリックしました
  4. そしてOkで投稿してください

WCFが復活しました。

12
Marek

このエラーは、使用しているコードが仮想ディレクトリがIISでセットアップされることを期待していることを示唆しています。

資料を調べて、必要な仮想ディレクトリーを追加してください。それはweb.configを含むディレクトリであるべきです(ルートディレクトリではない)。

10
Oded

有効なビューをビルドするMVCプロジェクトがある場合、解決策の1つはビルドの前にobjフォルダを削除することです。プロジェクトファイルに追加します。

<Target Name="BeforeBuild">
    <!-- Remove obj folder -->
    <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
    <!-- Remove bin folder -->
    <RemoveDir Directories="$(BaseOutputPath)" />
</Target>

これが記事です: ビルドやデプロイの前にbinやobjフォルダを削除する方法

10
Shaman

最近のweb.configの変更は、間違ったweb.configファイルにある可能性があります。

<machineKey...>プロパティがViews/web.configに追加されました。どのくらいの数のCleans and Rebuildを実行してもエラーは残りました。修正は、プロパティをルートに移動することでした/ web.config

8
SushiGuy

このエラーが発生したことがある場合

アプリケーションレベルを超えてallowDefinition = 'MachineToApplication'として登録されているセクションを使用するとエラーになります。このエラーは、仮想ディレクトリがIISのアプリケーションとして構成されていないことが原因で発生する可能性があります。

溶液
VS 2012でも同じ問題がありました。

  1. 現在のプロジェクトをアンロードする
  2. あなたの.csprojを編集します
  3. この<MvcBuildViews>false</MvcBuildViews>を探す
  4. の代わりに false 値をに変更 本当の
  5. プロジェクトを再度ロードしてください。このエラーはもう発生しません。

ある場合は、1つの解決策はコンパイラによって生成されたプロジェクト内のobjフォルダの内容を削除することです。

6
visar_uruqi

私の場合、問題はサブディレクトリに私がプロジェクトを公開した後にだけ現れた。私は知識がないため、web_publishサブディレクトリをweb_projectディレクトリの内側に配置しました。

web_publishには、プロジェクトに含まれるものと同じWeb.configも含まれていることは明らかです。しかし、web_projectは、ネストされたサブディレクトリでweb_publishを検索するときに私のWeb.configを避けるべきであることを知りません。このようにして、Web.configが複製され、エラーが発生しました。

解決策は私のweb_publishを他の場所に置くことでした。

5
pepr

私の場合ではそこにそこに全体のウェブサイトの別のコピーを含む "バックアップ"フォルダがありました。これは別のweb.configを意味していたので、ビルドはこのエラーで失敗しました。私は "Backup"フォルダを削除し、DebugとReleaseのビルドに対してCleanソリューションを実行し、そしてエラーは消えました。

4
Druid

私の場合、

ソリューションには6つのプロジェクト、1つのメインディレクトリと5つのサブディレクトリがあります。 web.configを持つすべてのサブディレクトリ。

サブディレクトリ内の任意のページを実行すると、私は同じエラーを受けていました。

この行をweb.configから削除しました、

<authentication mode="Windows"/>

それは私のために働いた。

4
p_champ

プロジェクトをクリーンアップする/ objフォルダを削除します(おそらくpublishおよびdeployを使用していますか? - バグがあります)。

3
NicoJuicy

私の問題は、VS2010の新規インストール時に誤って自分のWebサービスを完成前の場所に公開していたことです。

私はPreCompiledWebというフォルダに公開していましたが、web.configの存在が原因でそれがめちゃくちゃになっていました。

私は単にフォルダを無効にして、プロジェクトを更新しました。

このエラーをダブルクリックすると - それは私をひっくり返したその誤ったweb.configファイルに私を連れて行きました。

3
gaijintendo

どうやら私のソリューションには2つのweb.configファイルがありました。私はMVC4を使用していて、Viewsの下に別の設定ファイルがあり、私は間違ったファイルに変更を加えていました。私を助けたそこに修正しました。

しかし、global.asaxファイルのデフォルトのリダイレクト/ルートはいつでも変更できます。

2
Gautam Beri

Binおよびobjフォルダを削除します。それからソリューションを再構築します。

2
rovsen

それはあなたが.Net framework 2.0のプロジェクトをダウンロードしてVS2008にそれを開きたいようなバージョンの問題かもしれませんそしてあなたは最新バージョンにアップグレードする必要があるでしょうそしてVSは同じルートディレクトリにフォルダのバックアップを作成します。答えを得なさい ここ

2
gofor.net

私のソリューションに作成されたWeb配置プロジェクトでソリューションを構築するとき、私はこのエラーがありました。 Web Deployment Projectがビルドされているフォルダを削除することでエラーを解決します。このフォルダは、WDPプロパティの「プロジェクトフォルダ」属性で指定されています

2
Ilya

まだ見ている人のために、私の解決策はbinとobjフォルダの両方を削除し、それを修正するように見えるビジュアルスタジオを再起動することでした。

1
Ricky G

プロジェクトファイルで "true"が有効になっていると、この問題がより頻繁に発生します。

  1. Falseに設定

ジョニーが言うように:

  1. ソリューションをリリースモードに設定しながら、ソリューションをクリーンにします。
  2. ソリューションがデバッグモードに設定されている間に、ソリューションをクリーンにします。
  3. ソリューションがデバッグモードに設定されている間にビルドします。
1

Visual Studio経由で、外部サーバーに FTP経由でWCFサービスを公開 を持っていました。これはローカルでも、内部サーバーへの公開時にも正常に機能しましたが、外部サーバーには公開されませんでした。解決策は、提供せずに公開Site Path(つまり、仮想ディレクトリのルートに直接公開)することでした。

ここにリストされているものすべてを含む、他の多くの試みの中でも、外部のFTPクライアントを介してファイルをルートに移動しようとしていたので、なぜそれがうまくいったのかわかりません。 FabianVal の場合のように、それはpublishプロファイルに関連したものかもしれません。しかし、現時点ではテストをする気分ではありません。何日もの間この問題を無駄にしてきたので、スピードに立ち上がるのが急いでいるからです。

1
Aske B.

おそらくあなたは仮想ディレクトリとして設定されていないプロジェクトフォルダ内にサブasp.netプロジェクトフォルダを持っているでしょう。プロジェクトをIISで実行するように設定します。

1
funwithcoding

あなたのウェブサイトやアプリケーションをあるサーバーに公開しているときにこの問題に直面した場合、私が使った簡単な解決策はファイルを含むフォルダをウェブアプリケーションに変換することです。

1
ehabh86

私は自分のWebサイト公開スクリプトに追加しました。最後に、あなたのWebサイトのフォルダからobjフォルダを削除します。

1
Valamas

Webアプリケーションにはなりたくないプロジェクトがあり、それをフォルダーにしたいと思いました。答えはweb.configファイルを完全に削除することでした。アプリケーションのルートにのみ属します。

1
Rob Sedgwick

Webサイトプロジェクトがあります。

私の場合、ソリューションファイルを別のパスに移動したために問題が発生しました。以前の場所に復元したところ、問題は解決しました。

1
Daniel Silva

プロジェクトをデバッグモードで公開した後、VS 2013でも同じ問題が発生します。 obj/filesを削除することで問題を解決しました

1
Grigory Bushuev

私は上記のすべての解決策を試しましたが、それらのどれも私の問題のために働きませんでした。 (この問題に対する解決策は1000あると確信しています)私のシナリオでは、テスト中のWCF Webサービスを実稼働環境に公開しようとしました。

しかし、私は本番環境ではHTTPSのみであることを認識できませんでした。つまり、すべてをHTTPSにリダイレクトします。結局のところ、私はHTTPSではなくHTTP経由でサービスを指していたため、エラーが発生しました。このシナリオの解決策は、アドレスプロトコルを単にHTTPではなくHTTPSに変更することでした。

私はそれがこの問題を解明しようとしている貧しい人々の魂の助けになることを願っています。

0
ROFLwTIME

今回のケースでは、他のサーバー間で複製されたサーバーにサイトを展開していました。デプロイメント環境内のすべてのサーバーでIISRESETを実行してもうまくいきました。

0
user1477388

私の場合はGoDaddyでホスティングしていましたが、それは問題ではありませんでしたが、混乱を招きました。

ルートフォルダ "WebServices"があり、それをアプリケーションルートとして設定しました。

ただし、 "WebServices"フォルダは多くのサービスのコンテナであるため、サービスは "GeoLocateSpecials"というサブフォルダにありました。

そのため、GeoLocateSpecialsをアプリケーションルートとして設定する必要があり、そこからうまく機能しました。

他の誰かに役立つことを願っています。

0
GPGVM

プロジェクトフォルダからCrystal Reportsのバックアップファイルを削除した後、それは私のために働いています。

私は私が私がこのひどい間違いを得ることを出版している間私が問題を得ないサイトを造るなら私が私がサイトを出版する時に同じ問題を抱えていた:

「allowDefinition = 'MachineToApplication'として登録されたセクションをアプリケーションレベルを超えて使用するとエラーになります。このエラーは、仮想ディレクトリがIISでアプリケーションとして構成されていないことが原因で発生する可能性があります」

私はこの投稿でここに述べられていることをすべて試してみましたが、私が役立ったのは私が使っていたものとまったく同じ新しいパブリッシュプロファイルを作成することでした。新しいプロファイルではなく、古いプロファイルで行います。違いが何であるかわかりませんが、少なくとも私のMVCプロジェクトを公開することができます。

これが誰かに役立つことを願っています!

0
FabianVal

ヒント1:クリーニングしてから再構築する。

ヒント2:VSを閉じて再度開くだけです。

ヒント3:ダウンロードしたプロジェクトは別のサブフォルダの中にあるかもしれません...あなたに.netファイルがあるフォルダを開いてください。

c:/ demo1/demo /(全ファイル)

Demo1ではなく、vsからデモを開く必要があります。

0
Learner

新しいグローバルWeb.Configが自動的に親フォルダに作成されるため、私は同じ問題を抱えていました。それは\ Website\Websiteです。

すべてのファイルを子フォルダから親フォルダに移動して子フォルダを削除すると、Web.Configは1つだけになり、問題は解決します。

0
Auguste