web-dev-qa-db-ja.com

.net 4.0へのアップグレード後、ファイルまたはアセンブリ「AjaxControlToolkit」をロードできませんでした

.net 4.0にアップグレードしようとしているWebアプリケーションがあります。

アプリケーションを取得してVisual Studio 2010 Beta 2で開き、そのアプリケーションのアップグレードパスを選択しました。アプリケーションはAjaxControlToolkitを使用します。ページにアクセスしようとするとアップグレードが完了するので、「ファイルまたはアセンブリ 'AjaxControlToolkit'またはその依存関係の1つをロードできませんでした。アクセスが拒否されました。」というエラーメッセージが表示されます。

私はもう試した:

  • マシンを再起動する
  • クリーンなソリューション
  • 一時ASP.Netファイル内のすべてのファイルを削除する
  • TempディレクトリのASP.Net FilesディレクトリであるBinディレクトリでの権限の緩和(フルコントロールでEveryoneを追加)
  • AjaxControlToolkit DLLへの参照の削除と再読み込み

AjackControlToolkitの関連するweb.configエントリは次のとおりです。

<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
  <controls>
    <add tagPrefix="ajaxToolkit" namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit"/>
  </controls>
</pages>

ここで何が起こっているか/この問題をどのように修正できるかについてのアイデアはありますか?

15
ChrisHDog

これが機能した理由は100%わかりませんが、適切なTemporary ASP.Net Filesディレクトリ(C:\ Windows\Microsoft.NET\Framework64\v4.0.21006\Temporary ASP.NET Files [projectName]にあります)に手動でコピーしましたAjaxControlToolkit.dll。

次に、不足している追加のDLLが表示されましたが、この場所に手動でコピーすると、これらの問題を解決できました。最善の答えのようには思えませんが、それは私のために働いてしまいました。

1
ChrisHDog

同様の問題がありましたが、偽装IDの「Temporary ASP.NET Files」フォルダーに完全な権限を付与することで解決できました。

16
Jeremy

私はすでに受け入れられた答えがあることを理解していますが、エラーコードの検索を介してこのページにアクセスする他の誰もが...

なりすまそうとしているユーザーの権限を確認します。

私の状況では、ステージングサーバーや展開サーバーではなく、開発マシンでのみエラーが発生していました。 (しばらくの間、開発環境のconfigから 'identity'ノードを削除し、ビルド後の行を追加するだけでこれを回避したため、私以外の誰にとっても問題ではありませんでした。

私の環境では、実行中にすべてのWebアプリが偽装する特定のユーザーがいます。ユーザーアカウントを作成しましたが、アカウントのアクセス許可を明示的に設定していませんでした。開発マシンの管理者としてユーザーを追加したところ、この問題は完全になくなりました。 (理想的ではありませんが、私にはわかりますが、それは「私にとってはうまくいきます」。ユーザーアカウントはとにかく「実際の」サーバーにロックされているため、害は最小限です。

6
Peter Bernier

C:\ Windows\Microsoft.NET\Framework64\v4.0.21006\Temporary ASP.NET Files [projectName]のTempファイルに関する投稿は正しい方向に進んでいたと思います。

権限を編集して問題を解決し、ASPなりすましユーザー(IISのセキュリティセクションにある、アプリが使用する匿名ユーザーとして)にあることを確認します。匿名アクセスを許可する場合)は、ディレクトリに対して適切なセキュリティを備えていました。

問題を解決しました...アクセス拒否は通常、権限の問題を示しています。

4
shookdiesel

ASP.NETアプリケーションを新しいWindows Server 2008マシンに再インストールすると、このエラーメッセージ(別のdllファイルはあります)が表示されました。私は何時間もこれの解決策を探し、絶対にすべてを試みましたが、役に立ちませんでした。 McAfeeアンチウイルスを無効にするまで。私がやったとき、すべてが魅力のように働きました。

3
Mel Korman

これを試すことができます:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\。このフォルダ内からすべてのフォルダとファイルをクリーンアップして、urアプリケーションをコンパイルします。幸せなコーディング!

2
mujtaba

偽装したユーザーにTemporary ASP.NET Filesフォルダへの完全な権限を与えようとしましたが、うまくいきませんでした。過去にこのエラーが発生したとき、それがうまくいったことを覚えています。

質問の投稿者がこれを試したのは知っていますが、ビジュアルスタジオでAjaxToolKitを削除/追加したときにうまくいきました。私は彼が最初にしたすべてを試すことをお勧めします。これが誰かの役に立つことを願っています。

2
jinsungy

奇妙なエラー。公開鍵トークンまたは他のアセンブリー仕様が提供されたAjaxControlToolkitを指すweb.configファイルに何かありますか?それは私に起こりました、そこで値が変更されたか、GACの参照からローカル参照に変更されました...

HTH。

1
Brian Mains

私は同じ問題に直面していました。多くの調査の結果、構成ファイルで偽装を使用していることがわかりました。偽装IDをサーバーに対してローカルである別のユーザーに変更する必要があり、問題はすぐに解決されました。

1
AshishGarg

DLLのプロパティを調べます。どこかに「このファイルは別のコンピューターからのものである」と表示されている場合は、チェックボックスをクリックして「適用」し、Windowsによる制限を解除します。

1
Protector one

コンテキストメニューを使用して[管理者として実行]で[Visual Studio]を開くことも忘れないでください[右クリック]。

0
JosephDoggie