2

私はasp.net mvc4アプリケーションを持っています。Global.asaxファイルに問題があります

デモ

Global.asax.cs _

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Routing;

namespace integration_finale
{

    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
        }
    }
}

アプリケーションを起動すると、次のエラーが発生しました。

デモ2

英語に翻訳

「/」アプリケーションでサーバー エラーが発生しました。分析エラー 説明: この需要リソースを満たすための要件の分析中にエラーが発生しました。問題のエラー分析の詳細を以下で確認し、ソース ファイルを適切に変更してください。

メッセージ パーサー エラー: タイプ 'integration_finale.MvcApplication' を読み込めませんでした。

ソース エラー:

1 行目: <% @ Application Codebehind = "Global.asax.cs" Inherits = "integration_finale.MvcApplication" Language = "C #"%>

ソース ファイル: / global.asax 行: 1

バージョン情報: Microsoft NET Framework バージョン:。4.0.30319; ASP.NET バージョン: 4.0.30319.18056

では、何が問題で、どうすれば修正できますか?

4

1 に答える 1

5

このエラーは、IIS Express が要求されたクラス (この場合は ) を含むライブラリの読み込みに失敗した場合にスローされますintegration_finale.MvcApplication。ライブラリが見つからないという事実には、多くの原因考えられます

IIS Express は、これにまったく新しい混乱をもたらします。特定のポートに対して IIS Express に登録する最初のアプリケーションは、そのプロジェクト パスが登録されます。プロジェクトの名前を変更するか、以前に登録されたポートで構成された新しいプロジェクトを実行すると、IIS Express は間違ったディレクトリからサービスを開始します。これは、同一のプロジェクトがある場合 (たとえば、DEV ブランチと ACC ブランチがあるため、同じ名前の Web アプリケーションを含むライブラリが見つかる可能性がある場合)、ブラウザーに表示されるものが期待どおりではない場合に特に面白いです。することが。

を開きMy Documents\IISExpress\config\appplicationhost.config、エラーが発生した Web アプリケーション用に構成されたポートを検索します。次のようなセクションが表示されます。

<site name="YourWebsiteName" id="1">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\Source\WebsiteProject" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:1234:localhost" />
    </bindings>
</site>

アプリケーション セクションを確認physicalPathし、現在のプロジェクトを指していることを確認します。そのポートへのすべてのリクエストはphysicalPathvirtualDirectoryが満たされている場合、その から処理されます (サイトのルートから始まる仮想ディレクトリが 1 つしかないため、これとほとんどの場合です)。

プロジェクト ディレクトリの名前を変更するか、同じポートを使用する 2 つのプロジェクトがある場合、IIS Express で問題が発生します。考えられる修正:

  • VS のプロパティ ウィンドウで、IIS Express に使用される Web プロジェクトのポートを変更するだけです。これにより、新しい IIS Express サイトが作成されます。
  • プロジェクトの構成で [Create Virtual Directory] ​​ボタンをクリックします。これは通常、名前の変更後に機能しますが、コピー後には機能しません。
  • IIS Express の構成を変更します (もちろん、バックアップを作成します)。必要に応じてサイトの名前を変更し、 の を修正できphysicalPathますvirtualDirectory
于 2013-11-11T11:05:17.180 に答える