1. ホーム
  2. asp.net

[解決済み] エラー Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

2023-02-25 03:58:51

質問

私は小さなウェブアプリケーションを持っています。これは、私のアプリケーションに2つのgenericHandlerを追加するまで、うまく動作していました。

私はhttpハンドラについて以下の変更を行いました。

 <system.web>
    <authentication mode="Forms" >
        <forms protection="All" timeout="720" defaultUrl="Default.aspx" loginUrl="Login.aspx" >
        </forms>
    </authentication>
    <authorization>
        <deny users="?"/>
    </authorization>
    <compilation debug="true" targetFramework="4.0" />

    <httpHandlers>
        <!--Code Log Handler-->
        <add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory" />
        <add verb="*" type="InfoDomeNewUI.Handler.SendOWA" path="SendOWA.ashx" />
        <add verb="*" type="InfoDomeNewUI.Handler.SendSOS" path="SendSOS.ashx" />
    </httpHandlers>
    <customErrors mode="Off">
        <error statusCode="404" redirect="Templates/PageNotFound.html" />
    </customErrors>
</system.web>
<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
        <!--Code Log Handler-->
        <add name="LogHandler1" path="SendOWA.ashx" verb="*" type="InfoDomeNewUI.Handler.SendOWA"/>
        <!-- SMS SENDER-->
        <add name="SendSOS" path="SendSOS.ashx" verb="*" type="InfoDomeNewUI.Handler.SendSOS"/>
    </handlers>
</system.webServer>

Could not load file or assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

asp.net4.0とC#を使用しています。 MVCは使用していません。

ローカルホストでは正常に動作しています。

しかし、私は公開されたコードをホストしているとき、それは私に上記のエラーを与えています。

スタックトレース:-)

[FileNotFoundException: Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' またはその依存ファイルのいずれかを読み込むことができません。システムは指定されたファイルを見つけることができません]。 System.Web.Http.WebHost.SuppressFormsAuthRedirectModule.Register() +0

[InvalidOperationException。System.Web.Http.WebHost.PreApplicationStartCode 型のプレアプリケーション開始初期化メソッド Start で、次のエラーメッセージの例外がスローされました。Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35」またはその依存物の1つをロードすることができませんでした。指定されたファイルが見つかりません...]。 System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1メソッド) +11708830 System.Web.Compilation.BuildManager.CallPreStartInitMethods()の呼び出し +465 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLeve) +465

[HttpException(0x80004005)です。System.Web.Http.WebHost.PreApplicationStartCode 型の事前アプリケーション開始初期化メソッド Start で、次のエラー メッセージの例外がスローされました。Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35」またはその依存関係の1つをロードすることができませんでした。システムは指定されたファイルを見つけることができません...]。 System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +11697760 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +141 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +4866485

どのように解決するのですか?

問題が見つかりました。クラスを追加する代わりに (.cs) ファイルを追加する代わりに、間違って Web API Controller クラスを追加し、それが私のソリューションに設定ファイルを追加しました。そして、その構成ファイルは、言及されたDLL(Microsoft.Web.Infrastructure 1.0.0.0)を探していたのです。 そのファイルを削除し、アプリケーションをクリーンにしてから公開すると、動作しました。