0

私は共有ウェブホスティングにhttphandlerを持っています。できます。

このhttphandlerのhttphandlerwebapp(仮想)ディレクトリにはweb.configがなく、共有ユーザーのWebサイト全体にweb.configがあり、コメントされていないステートメントが1つだけあります。

<compilation defaultLanguage="c#" debug="false"/>

今、私はそれを次のように変更します:

<system.web>
    <urlMappings enabled="true">
    <add url="~/CheckLoad" mappedUrl="~/BackupLicense.ashx?key=CheckLoad"/>
    <compilation defaultLanguage="c#" debug="false">
      </compilation>
</system.web>

This(*)はローカル(VS2008内部Webサーバー上)で機能しますが、共有ホスティングでは機能しません。

何が恋しいですか?(*)は[1a]を呼び出すことを意味します。これはローカルでのみ機能しますが、共有ホスティングでは「ページが見つかりません」「HTTPエラー404」が表示されます。

[1a]次のように呼び出します: http : //www.MySharedSite.com/CheckLoad(さらに、常にどこでも機能します[1b] http://www.MySharedSite.com/BackupLicense.ashx?key=CheckLoad

4

1 に答える 1

1

組み込みのWebサーバーとIIS6および7でのURLの処理方法には、微妙な違いがいくつかあります。共有ホストで実行されているIISのバージョンを知る必要があります。

具体的には、IIS6は、拡張子がaspnet_isapi.dllにマップされていないURLをサポートしていません。また、URLに拡張子を使用していないため、これが当てはまる可能性があります。

ホストが統合パイプラインモードでIIS7を使用している場合は、system.webではなくurlマッピングを使用してsystem.webServerセクションを構成する必要があります。(また、違いの説明については、この質問を参照してください)。

編集 私はあなたのウェブホストがIIS6を使用しているコメントで見ます。次に、Webホストに/CheckloadURLをASP.NETで処理できるようにするように依頼する必要があります。それを機能させるもう1つの簡単な方法は、URLの最後に.ashxを使用することです。.ashx拡張子は、標準構成でASP.NETに既にマップされているためです。

于 2009-11-01T11:21:48.120 に答える