web-dev-qa-db-ja.com

ASP.NETアプリケーションを展開する際のパーサーエラー

単純なasp.net Webアプリケーションプロジェクトを完成させ、コンパイルし、ローカルIISでテストを試みました。仮想ディレクトリを作成し、物理ディレクトリにマップし、すべての.dllのbinフォルダーを含む必要なすべてのファイルをそこに配置しますプロジェクト設定、ビルドセクションで、出力パスはbin \ですので、アプリを参照しようとすると:

Server Error in '/' Application.
--------------------------------------------------------------------------------

Parser Error 
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately. 

Parser Error Message: Could not load type 'AmeriaTestTask.Default'.

Source Error: 


Line 1:  <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="AmeriaTestTask.Default" %>
Line 2:  
Line 3:  <%@ Register Assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="ajaxToolkit" %>


Source File: /virtual/default.aspx    Line: 1 

enter image description here

同様の問題の投稿を読んで、解決策は出力パスをbin \に設定することでしたが、それは私のプロジェクトにとっては不利です。

16
igorGIS

私は問題を解決しました。解決策は、仮想ディレクトリを手動で作成せずにアプリファイルをここにコピーするのではなく、「アプリケーションの追加...」オプションを使用することです。ここに私を助けた投稿があります http://social.msdn.Microsoft.com/Forums/en-US/winformssetup/thread/7ad2acb0-42ca-4ee8-9161-681689b60dda/

2
igorGIS

私は答えるには遅すぎることを知っていますが、他の人を助け、時間を節約することができます。

以下は他の解決策かもしれません。

Solution 1:アプリケーションの仮想ディレクトリを作成する詳細な手順については、アプリケーションの仮想ディレクトリの作成を参照してください。

Solution 2:アプリケーションのBinフォルダーが見つからないか、アプリケーションのDLLファイルがありません。詳細な手順については、本番サーバーへのアプリケーションファイルのコピーを参照してください。

Solution 3: Webルートフォルダーに展開した可能性がありますが、Web.configファイルの設定の一部は変更していません。詳細な手順については、Webルートへのデプロイを参照してください。

私の場合 Solution 2は動作しますが、サーバーにいくつかのDLL'sからbinディレクトリがサーバーに正常にアップロードされていません。私はすべてのDLLを再度アップロードします、それは動作します!!

asp.netパーサーエラーの解決 への参照リンクを次に示します。

38
Mayank Modi

私は同じ問題を抱えていました。5時間または6時間の研究を実行しました。簡単な解決策が機能しているようです。私はちょうどフォルダをIISからアプリケーションに変換する必要がありました。 (これは、サーバー2003からサーバー2008 R2への移行を行ったシナリオでした)

(1)IISを開き、変換する必要のあるWebサイトと適切なフォルダーを選択します。右クリックして[アプリケーションに変換]を選択します。ここにあります。 http:// www .windowstechinfo.com/2014/09/solved-an-error-occurred-during.html

6
Aravinda

次のいずれかの場合に発生することがあります。

  1. クリーンソリューション/ビルド、または、
  2. ソリューション/ビルドを再構築します。

そのようなことが突然発生し、コードにbuild-timeエラーがある場合は、まずそれらのエラーを修正してみてください。

ソリューションがビルドされると、DLLファイルが作成され、プロジェクトのbinフォルダーに保存されます。ビルド時にコードにエラーがある場合、DLLファイルが適切に作成されず、エラーが発生します。

「迅速な修正」は、すべてのエラーを修正するか、他のWebページに影響しない場合はコメントアウトすることです。その後、プロジェクト/ソリューションを再構築します。

これが機能しない場合は、変更してみてください:CodeBehind = "blahblahblah.aspx.cs"

宛先:CodeFile = "blahblahblah.aspx.cs"

注:「blahblahblah」をページの実名に変更してください。

CodeBehind="Default.aspx.cs"CodeFile="Default.aspx.cs"に変更してみてください

3
Codeone

このようにして解決しました。

プロジェクトファイルに移動し、project/name/binと言い、binフォルダー内のすべてを削除します。 (これにより、この方法で解決できる別のエラーが表示されます)

次に、Visual StudioでプロジェクトのReferencesフォルダーを右クリックして、NuGetパッケージマネージャーを開きます。

「DotNetCompilerPlatform」を参照してインストールします。

2
Mo D Genesis

ASHXファイルの1つでプログラミングエラーが発生したときに同じエラーに直面しました。別のファイルをコピーして作成され、コードビハインドステートメントでクラス名を継承しました。すべてのASPXおよびASHXファイルがIIS Expressローカルで実行されたが、サーバーにデプロイされると、それらはすべて停止しました(すべて))の場合、エラーはありませんでした。

1つのASHXページが見つかり、クラス名を修正して独自のクラス名を反映させると、すべてのASPXおよびASHXファイルがIISで正常に機能し始めました。

1
ajeh

サブフォルダーとサブフォルダーにファイルを追加すると、BinフォルダーのDLLファイルも変更された可能性があります。Binフォルダーの更新されたDLLファイルそれを提案または示唆したMayank Modiに感謝します。

0
Sam Patirage

IIS 7またはIIS 8または8.5バージョン-2003から2012/2008に移行する場合は、Webサービスが仮想ディレクトリではなくアプリケーションタイプにあることを確認してください

0

興味深いすべての異なるシナリオ..

私の場合...自分のサイトをGoDaddyにアップロードして、パーサーエラーが発生していました。

Web.configのsystem.codedomの下にあるcompilersをコメントアウトすることで解決しました。また、公開中にプリコンパイルされる公開用のカスタムプロファイルも追加します。

  <system.codedom>
    <!--GoDaddy does not compile!-->
    <!--<compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
    </compilers>-->
  </system.codedom>
0
Chris Catignani

私の場合、.csprojファイルのコンパイルタグを見逃しました

<Compile Include="Global.asax.cs">
  <DependentUpon>Global.asax</DependentUpon>
  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Compile>
0
David

私の場合、新しいコードブランチがあり、古いコードブランチがIISにローカルに展開されました。そのため、利用できない古いブランチコードを指していました。だから、コードをIISに新しいブランチでデプロイしましたが、現在は機能しています。

0
Jeetendra