簡體   English   中英

Ashx 處理程序的 processrequest 函數沒有被調用

[英]Ashx handler's processrequest function is not called

我正在編寫一個處理程序來處理資源,當實現的 IHttpHandler 類寫在命名空間下時,我面臨一個問題。

請找到代碼

不工作場景

網頁配置:

<add name="ResourceHandler" type="PublicSite.Classes.Handlers.ResourceEndpoint, PublicSite" path="Resource.ashx" verb="*" />

屬性: PublicSite.Classes.Handlers.ResourceEndpoint.IsReusable=False

問題:構造函數被命中並且 ProcessRequest 未被調用。 構造類的對象,即 Constructor is hit ,但是在調用 processrequest 之前失敗了 404。

工作場景

網頁配置:

<add name="ResourceHandler" type="ResourceEndpoint,PublicSite" path="Resource.ashx" verb="*" />

類: PublicSite.Classes.Handlers.ResourceEndpoint.IsReusable=True

在調用 processrequest 之前,構造函數被命中並失敗 404。

第二次當我們請求處理程序時,它會立即使用構造的對象,因此不會調用構造函數,而是直接調用 ProcessRequest。 順便說一下,在第二次調用中,處理程序正在工作。

我不需要可重用的屬性。 有人可以幫我找到問題。 謝謝。

您能否向我確認您的 web.config 和處理程序本身如下所示? (這是來自 IIS 7.5 下托管的項目)

web.config:-

  <system.webServer>
    <handlers>
      <add name="customerHandler" 
           preCondition="integratedMode" 
           verb="*" 
           path="customerHandler.ashx"
           type="GlassCMS.HttpHandlers.CustomerHandler, GlassCMS"/>
.
.
.
    </handlers>
  </system.webServer>

HttpHandler: -

    [WebService(Namespace = "http://{redacted.com}/json-http-handlers/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class CustomerHandler : IHttpHandler
    {
        public bool IsReusable
        {
            get { return false; }
        }

        public void ProcessRequest(HttpContext context)
        {
            string json = string.Empty;

            // code to do whatever here...

            context.Response.Write(json);
        }

如果你願意,我也可以包含 JavaScript(或者你可以在這里發布你的)。 上面的這個例子來自工作代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM