1

Windows Vista 32 ビット - C# - .NET 4 - sqlite - IIS 7

ユーザーが XML ファイルを要求できるカスタム HTTP ハンドラーを含む小さなプロジェクトを構築しています。プロジェクトはファイルを生成してユーザーに送信します。jsonなどの他のものも送信できるほど柔軟でなければなりません。

ハンドラーを展開する必要があるまで、すべてが順調に進んでいました。要求された情報を提供するためのロジックを含むライブラリ (dll) ファイルを作成しました。IISマネージャーを開き、デバッグbinファイルへの仮想ディレクトリを作成しました(後でアプリケーションにしましたが、違いはありませんでした)。

私は、次のような無数の例とチュートリアルに従ってきました。

私はこれから始めました:http://support.microsoft.com/kb/308001

http://msdn.microsoft.com/en-us/library/bb515343.aspx

msdn.microsoft.com/en-us/library/46c5ddfy.aspx

しかし、運が悪い。ご覧のとおり、bin フォルダーに追加したweb.configがあり、次のようになっていますが、asp.net Web サイトは使用していません。

    <?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <httpErrors errorMode="Detailed" />
    <asp scriptErrorSentToBrowser="true" />
    <directoryBrowse enabled="false" />
    <handlers accessPolicy="Read, Script, Execute">
      <add name="LigoManagedHandler" path="*" verb="*" type="Ligo.Service, Ligo" resourceType="Unspecified" preCondition="integratedMode" />
    </handlers>
  </system.webServer>
</configuration>

ブラウザーでハンドラーを実行しようとすると、次のエラーが発生します。

Could not load file or assembly 'Ligo' or one of its dependencies. The system cannot find the file specified. 


Exception Details: System.IO.FileNotFoundException: Could not load file or assembly 'Ligo' or one of its dependencies. The system cannot find the file specified.

IIS マネージャを機能させるために非常に多くの可能な組み合わせ (「httphandlers」、「クラシック モード」など...) を試しましたが、本当に行き詰まっています。インターネットで見つけた情報はあまり役に立ちません。

それを機能させるために何が間違っているか、欠けていますか?

4

3 に答える 3

4

この暴言の何かがアイデアを引き起こし、私は答えに出くわしました。

type="ClassName, AssemblyName"Web.Config の Handlers セクションに入れると言っているすべてのチュートリアルの行は、単純に間違っています。

これを変更するだけtype="AssemblyName.ClassName"で、作成した Web サイト プロジェクトと Web アプリケーション プロジェクトの両方で、すべてが機能し始めました。

IIS 7.5 を統合モードで実行しているので、YMMV.

クレイグ

于 2012-08-28T14:26:49.780 に答える
1

私はそれを理解します。asp.net Web サイト プロジェクトを作成し、このプロジェクトへの参照として dll を追加する必要がありました。

この情報を提供したこのスレッドを読みましたが、インターネット上では明確ではありません。

http://forums.asp.net/t/1088861.aspx/1?What+causes+the+quot+Could+not+load+type+quot+problem+

aspnet Web サイト プロジェクトなしでは httphandler を作成できないことを明記する必要があります。または私は間違っていますか?インターネット上の例は正しくありません!または提供する情報が少なすぎます。

于 2012-05-13T05:19:31.147 に答える
1

私は知っています、これは古いスレッドです。しかし、明確な答えを見つけることなく、数日間答えを探していました。したがって、誰かが同様のシナリオに遭遇した場合に備えて。

カスタム Http ハンドラーをスタンドアロンのクラス ライブラリ プロジェクトとして作成し、IIS で使用できます。

IIS では、ASP4 統合モードで新しいアプリケーションを追加します。コンパイルした DLL をbinフォルダーに配置します (これは私がずっと見逃していたものです)。そこにあるはずであることは明らかです。これを理解するのに時間がかかりました。:)

web.config:

<configuration>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />
    </system.web>
  <system.webServer>
    <handlers>
      <add verb="*" path="*.ogg" name="test" type="Namespace.Classname"/>
    </handlers>
  </system.webServer>
</configuration>

お役に立てれば。乾杯。

于 2014-09-30T23:32:41.150 に答える