Google 網路論壇不再支援新的 Usenet 貼文或訂閱項目,但過往內容仍可供查看。

Custom HttpHandler and Server.Transfer

瀏覽次數:6 次
跳到第一則未讀訊息

br...@newsgroups.nospam

未讀,
2005年12月23日 晚上9:27:012005/12/23
收件者:
I've got a custom HttpHandler to process all requests for a given
extension. It gets invoked OK, but if I try to do a Server.Transfer I
get an HttpException. A Response.Redirect works, but I really need to
avoid the extra round-trip to the client.

I've tried Passing the page name, the full URL, and the instance of
the handler class to the Transfer method, but everything gets me the
same error 500.

Any help would be appreciated.

Thanks,
Bryan

Kevin Yu [MSFT]

未讀,
2005年12月24日 凌晨12:01:082005/12/24
收件者:
Hi Bryan,

We have reviewed this issue and are currently researching on it. We will
update you ASAP. Thanks for your patience!

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."

Steven Cheng[MSFT]

未讀,
2005年12月25日 晚上10:48:162005/12/25
收件者:
Hi Bryan,

As for ASP.NET's Server.Transfer method, it can only help forward request
between the pages or urls within the same asp.net webapplcation, we can not
use Server.Transfer to direct the current request to a resource in
different application or on other server. So what's the url you used in the
Server.Transfer ?

Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)


--------------------
| From: br...@newsgroups.nospam
| Subject: Custom HttpHandler and Server.Transfer
| Date: Fri, 23 Dec 2005 20:27:01 -0600
| Message-ID: <6acpq1h5lhpljps8k...@4ax.com>
| X-Newsreader: Forte Agent 3.1/32.783
| MIME-Version: 1.0
| Content-Type: text/plain; charset=us-ascii
| Content-Transfer-Encoding: 7bit
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| NNTP-Posting-Host: adsl-68-253-212-158.dsl.emhril.ameritech.net
68.253.212.158
| Lines: 1
| Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP12.phx.gbl
| Xref: TK2MSFTNGXA02.phx.gbl
microsoft.public.dotnet.framework.aspnet:366884
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet

br...@newsgroups.nospam

未讀,
2005年12月26日 上午9:59:312005/12/26
收件者:
Steven -
Thanks for the reply. The target of the Transfer is another page in
the same app that should be handled by the same custom handler. The
custom extension is set so that the handler gets invoked even if the
"pages" are not pesent, and there is in fact no physical page for the
target (nor is there for the source.)

Cheers,
Bryan

Steven Cheng[MSFT]

未讀,
2005年12月27日 凌晨12:24:452005/12/27
收件者:
Hi Bryan,

Thanks for your response. I've just performed some further test according
to your scenario, I did reproduce the problem you encountered, and after
some further research, it seems due to the HttpServerUtility.Transfer
methods only addressing transfer to another Page handler, I've check the
related code and found that when the runtime found the target handler is
not a page hanlder, it'll throw exception....

So far, in addition to use Response.Redirect, you can also have a look at
the HttpContext.RewritePath method which can help forward the internal
request to another resource in same application,e.g:

if(context.Request.QueryString["transfer"] != null)
{
context.RewritePath("test.sh?id=aa&test=bb&asp=111");
}

Thanks & Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)


--------------------
| From: br...@newsgroups.nospam
| Subject: Re: Custom HttpHandler and Server.Transfer
| Date: Mon, 26 Dec 2005 08:59:31 -0600
| Message-ID: <e510r11pfkrbpl9me...@4ax.com>
| References: <6acpq1h5lhpljps8k...@4ax.com>
<bBKS58cC...@TK2MSFTNGXA02.phx.gbl>


| X-Newsreader: Forte Agent 3.1/32.783
| MIME-Version: 1.0
| Content-Type: text/plain; charset=us-ascii
| Content-Transfer-Encoding: 7bit
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| NNTP-Posting-Host: adsl-68-253-212-158.dsl.emhril.ameritech.net
68.253.212.158
| Lines: 1

| Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP14.phx.gbl
| Xref: TK2MSFTNGXA02.phx.gbl
microsoft.public.dotnet.framework.aspnet:367058
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet

br...@newsgroups.nospam

未讀,
2005年12月27日 上午8:37:552005/12/27
收件者:
Steven-
Will rewrite path cause the transfer to handled entirely on the
server, or will it still cause anther round trip to the client and
back?

Thanks again for all the help.

Cheers,
Bryan

On Tue, 27 Dec 2005 05:24:45 GMT, stc...@online.microsoft.com (Steven

Steven Cheng[MSFT]

未讀,
2005年12月27日 晚上8:25:092005/12/27
收件者:
Hi Bryan,

Of course Context.RewritePath is a serverside operation which change the
server side processing path for the current request. No roundtrip to client
(the browser's address bar will remain the original one....). Usuallly it
is used for Url Rewriting in asp.net application (to provide static look
url which is search engine friendly...). Here is a article discuss this:

#URL Rewriting in ASP.NET
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html
/urlrewriting.asp

Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

--------------------
| From: br...@newsgroups.nospam
| Subject: Re: Custom HttpHandler and Server.Transfer

| Date: Tue, 27 Dec 2005 07:37:55 -0600
| Message-ID: <6pg2r15c20o9t1bp1...@4ax.com>
| References: <6acpq1h5lhpljps8k...@4ax.com>
<bBKS58cC...@TK2MSFTNGXA02.phx.gbl>
<e510r11pfkrbpl9me...@4ax.com>
<NujKeXqC...@TK2MSFTNGXA02.phx.gbl>


| X-Newsreader: Forte Agent 3.1/32.783
| MIME-Version: 1.0
| Content-Type: text/plain; charset=us-ascii
| Content-Transfer-Encoding: 7bit
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| NNTP-Posting-Host: adsl-68-253-212-158.dsl.emhril.ameritech.net
68.253.212.158
| Lines: 1

| Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftngp13.phx.gbl
| Xref: TK2MSFTNGXA02.phx.gbl
microsoft.public.dotnet.framework.aspnet:367136
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet

br...@newsgroups.nospam

未讀,
2005年12月29日 上午10:19:352005/12/29
收件者:
Steven -
RewritePath won't work. My custom handler is associated with an
extension that does not require the actual files to be present. So I
rewrite the path, but there is no page there, so an empty file is
getting returned. I don't see my custom handler getting invoked on the
RewritePath call, but I have not had the chance to digg too deeply
into this.

-Bryan

On Wed, 28 Dec 2005 01:25:09 GMT, stc...@online.microsoft.com (Steven

Steven Cheng[MSFT]

未讀,
2005年12月30日 凌晨2:12:452005/12/30
收件者:
Thanks for your Bryan,

I'm sorry for the HttpContext.RewritePath, I've rechecked it and it won't
work in handler's ProcessRequest method (it's too later at that time...),
generally it is used in some intial events in the asp.net pipeline like
(BeginRequest.....)....

And for Server.Transfer, I've consult our dev engineer and seems it is a by
design limitation that Server.Transfer can only be used to redirect to a
page handler. Here is the original description from the dev guys:

==================
Server.Transfer means ¡®execute this request using another handler¡¯ which
works fine
for pages because pages have handler per URL. In case of web services (and
other
handler factories) we get the same handler for all URLs and thus
Server.Transfer
would lead to infinite recursion.
So it really only works for pages.
==================

So far I think we may need to use response.Redirect for such redircting....

Thanks for your understanding,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

--------------------
| From: br...@newsgroups.nospam
| Subject: Re: Custom HttpHandler and Server.Transfer

| Date: Thu, 29 Dec 2005 09:19:35 -0600
| Message-ID: <kgv7r1t8lsd203q9n...@4ax.com>


| References: <6acpq1h5lhpljps8k...@4ax.com>
<bBKS58cC...@TK2MSFTNGXA02.phx.gbl>
<e510r11pfkrbpl9me...@4ax.com>
<NujKeXqC...@TK2MSFTNGXA02.phx.gbl>

<6pg2r15c20o9t1bp1...@4ax.com>
<DHseQ20C...@TK2MSFTNGXA02.phx.gbl>


| X-Newsreader: Forte Agent 3.1/32.783
| MIME-Version: 1.0
| Content-Type: text/plain; charset=us-ascii
| Content-Transfer-Encoding: 7bit
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| NNTP-Posting-Host: adsl-68-253-212-158.dsl.emhril.ameritech.net
68.253.212.158
| Lines: 1

| Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP10.phx.gbl
| Xref: TK2MSFTNGXA02.phx.gbl
microsoft.public.dotnet.framework.aspnet:367534
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet

0 則新訊息