2009-06-05 9 views
0

httpHandlerパスプロパティの使用方法に関する規則の良いリソースはありますか?ASP.NETのhttpHandlerパスに関するルールは何ですか?

私は私のハンドラが異なる環境で呼び出されたときのための混合の結果を見て、そう私が説明させて...

ています私のようなURLを可能にしたい:私は希望

http://mysite/_layouts/myCompany/rest/myservice.svc/param1/param2 

"myCompany"フォルダ/リンクの下でのみハンドラを呼び出すように、アプリケーションの残りの部分に影響を与えないように、対応するフォルダに次のweb.configファイルを配置します。これは、他人にいくつかのマシン上で動作しますが、ない:

<configuration> 
    <system.web> 
     <httpHandlers> 
      <add verb="*" path="myservice.svc" type="..." validate="false"/> 
     </httpHandlers> 
    </system.web> 
</configuration> 

を今、私はそれが基本的にのうち「myservice.svc」を見つけなければならなかったので、私はこれが働いたことを少し驚いたことを認めざるを持っています"rest/myservice.svc/param1/param2"の相対パスが見つかりましたが、私の3台のテストマシンのうちの2台でしか見つかりませんでした。これは数回働いたと今で動作していない

<add verb"*" path="rest/myservice.svc/*/*" type="..." validate="false"/> 

:だから、私は上で失敗したことを機に、以下を試してみました。論理的なタイプなので、勤勉であれば少し説明しても説明できませんが、もう一度やり直すことはできませんでした。参照してくださいthis同様のスタックオーバーフローの質問。

次のように動作しますが、理想的ではないパラメータを提供するためにクエリ文字列変数に頼っています。

<add verb"*" path="rest/myservice.svc/*" type="..." validate="false"/> 

私は、彼らが問題として飛び出しいかなるのhttpHandlersと何をどう定義するか確認するために異なる結果を与える二つのマシン上の道に沿って、親web.configファイルに見えました。

このパスがどのように利用されているかを理解しています。

これはSharePointサイト(この質問の "sharepoint"タグ)で実行されており、これをSOAPの代わりにREST(単純な "text/xml")として使用しています。私はボートをあまりにも多くのSharePointをインストールするので、代わりにHTTPハンドラを使用しているので、本格的なWCFを使用したくありません。また

、私は取得していますエラーは以下の通りです:答えはまだ大歓迎です

virtualPath at System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result) 
    at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) 
    at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication context, Boolean flowContext) 
    at System.ServiceModel.Activation.HttpHandler.ProcessRequest(HttpContext context) 
    at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

答えて

0

が、ここで私は簡単な回避策を見つけました。だから、単純な、それは私が特定のポイントからフォルダ/ URLを所有しているので、私はちょうどすべてが私のハンドラを通過することを確認することができます

...私は前にそれを考えていなかったことを私に気:

<add verb"*" path="*" type="..." validate="false"/> 

どれくらい簡単に取得できますか。-S。

これは、不適切なURLのエラーをよりよくレポートできるという利点があります。私はハンドラの代わりにハンドラファクトリを使うことにします。唯一の変更はタイプです。

+0

回答は[こちら](http://stackoverflow.com/questions/955417/httphandler-to-hook-the-svc-requests)とすることができます。 – leakyboat

関連する問題