2009-08-13 10 views
9

web.configには、いくつかのHTTPハンドラが指定されています。このサイトをWebサイトプロジェクトで実行していたとき、すべて正常に動作しました。しかし何らかの理由で、これをWAPプロジェクトに移植して.NET 3.5フレームワークを指し示した後、開発者ボックスのIIS 7でサイトを起動すると、ハンドラが動作しなくなります。私はweb7.configに既に存在する指定されたカスタムハンドラ以外のIIS7で特別な処理を行う必要がありますか?カスタムHTTPハンドラIIS7とASP.NET

私たちのサイトのIIS 7でHandler Mappingsセクションを見ると、カスタム拡張で3つのハンドラがリストされています。つまり、web.configで指定されているハンドラを取得しているようです。しかし、私は、WAP以外のウェブサイトで働いていたハンドラがこのWAPプロジェクトで作業していないことを知っています。なぜそれがわかりません。例えば

、私たちのハンドラの1つが、参照時におけるキックしようとしたときに私が出ます:「/」アプリケーションで

サーバーエラー。 パーサーエラー 説明:この要求を処理するために必要なリソースの解析中にエラーが発生しました。以下の特定の解析エラーの詳細を確認し、ソースファイルを適切に変更してください。私はそれに.customextensionを持っている当社のサイト上のハイパーリンクをクリックしようとすると、

Parser Error Message: Could not create type 'jaxHandler'. 

Source Error: 

Line 1: 
Line 2: 
Line 3: using System; 


Source File: /jaxHandler.ashx Line: 1 

Version Information: Microsoft .NET Framework Version:2.0.50727.3074; ASP.NET Version:2.0.50727.3074 

さらに、ハンドラがそれを拾うていないようです。

私はハイパーリンクをクリックしたときに、私が取得:

HTTP Error 404.0 - Not Found 
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable. Detailed Error InformationModule IIS Web Core 
Notification MapRequestHandler 
Handler StaticFile 
Error Code 0x80070002 
Requested URL http://sss:80/somename.prod 
Physical Path C:\www\sss\somename.prod 
Logon Method Anonymous 
Logon User Anonymous 

(私は「SSS」と「somenameの」と私たちの会社の名前で、実際のテキストを置き換えている)プライバシーのため、上記の場合には。

IIS7の[Http Handlers]セクションを見ると、* .prodが登録されていることがわかります。そして、ここで我々はそれがカスタムセクションの下で私たちのweb.configファイルに設定している方法です:IIS7上で実行されているASP.NETアプリケーションの場合

<add name="sss" path="*.prod" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="bitness32"/> 
+0

詳細をご記入ください。 "それは動作しません"私に多くを教えていない。 –

+0

大丈夫、私ははるかに詳細を追加しました。 – PositiveGuy

答えて

0

コードを作成するだけです。

すべてのC#コードを.ashx.csファイルにコピーする必要があります。実際には、新しい.ashxを作成し、C#コードを.ashx.csファイルにコピーすることをお勧めします。

動的に構築されるWebサイト。 Webアプリケーションプロジェクトは、Visual Studioの他の同様のプロジェクトタイプと同様、ソースファイルにコードを持ち、そのコードをアセンブリに組み込む必要があります。

+0

.ashxにはコードがありません。そうですか。それはウェブサイトプロジェクトにあったからね。 Gotcha – PositiveGuy

+0

あなたはそれを持っていますが、 "ウェブサイト"と言います - 彼らはプロジェクトではありません。 –

+0

まあ、それらの並べ替えです。 – PositiveGuy

25

は、httpHandlersのは、あなたのweb.configファイルの<system.webServer>セクションにマップする必要があります。 IIS6では、それらは<system.web>セクションにマップされていました。

<system.webServer> 
    <handlers> 
     <add name="HandlerName" 
      path="HandlerPath" verb="*" type="Handler.Type" 
      resourceType="Unspecified" /> 
    </handlers> 
</system.webServer> 
+1

はい、私たちはWebサーバーにマップされています。このサイトはIIS7のプロダクトサーバー上で既に実行されているためです。 – PositiveGuy

関連する問題