[英]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.