【问题标题】:Webresource.axd? - 500 internal server errorWebresource.axd? - 500内部服务器错误
【发布时间】:2010-10-23 23:39:26
【问题描述】:

我正在尝试使用 obout 控件库中的文件上传控件,我真的很喜欢它,并且认为它非常流畅,没有任何闪存!..

我下载了整个安装程序,使用示例中的设置,让控件完全按照我的意愿运行。

我在 vs2008 中创建了一个全新的 Web 应用程序,包括 web.config、dll 和带有样式代码的文件夹,以及我为提供所需输出而调整的 aspx 页面。

我构建了新项目并运行它,加载了控件,并且工作正常。


现在我想在我一直在处理的现有项目中使用它,所以我复制了 web.config 值、dll 以及带有样式代码的文件夹和我调整的 aspx 页面..

我将它们放在与其他项目相同的位置,构建它并运行页面.. 一切都加载了,但是当我单击一个按钮时,我得到了一个 webresource.axd 错误,实际上是 2,最后都带有加密。

在做了一些研究之后,看起来 webresource.axd 可用于动态加载 javasript 和 css 文件等...所以我现在的猜测是控件使用它作为隐藏方式来包含它需要的 javascript 文件..它在这些方面的失败包括..这让我感到困惑。

我已经从我的项目中删除了所有内容,但它仍然失败,我发现一篇文章说它可能是网站的 iis 配置,所以我检查了,我有到 .net 2.0 lib 文件的映射,使用 axd 扩展.. 所以我怀疑这是问题所在,但是我确实删除并重新创建了 iis 站点.. 它仍然无法正常工作...

我也在网络配置中包含了这一行..

<add verb="GET" path="WebResource.axd" type="System.Web.Handlers.AssemblyResourceLoader" validate="true"/>

这似乎也没有帮助..

有人知道我可以去哪里吗?...

编辑: 我在事件查看器中遇到了这个..

Event code: 3005 
Event message: An unhandled exception has occurred. 
Event time: 05/05/2009 2:38:16 PM 
Event time (UTC): 05/05/2009 6:38:16 PM 
Event ID: 8579dbce2f5844169b1740bb95ebffb1 
Event sequence: 8 
Event occurrence: 1 
Event detail code: 0 

Application information: 
    Application domain: /LM/W3SVC/1/Root/SVN_WORKSPACE/WWWROOT/WorkEstimateSystem-12-128860222914549340 
    Trust level: Full 
    Application Virtual Path: /SVN_WORKSPACE/WWWROOT/WorkEstimateSystem 
    Application Path: c:\inetpub\wwwroot\SVN_WORKSPACE\WWWROOT\WorkEstimateSystem\ 
    Machine name: GREGE6500 

Process information: 
    Process ID: 2276 
    Process name: aspnet_wp.exe 
    Account name: GREGE6500\ASPNET 

Exception information: 
    Exception type: HttpException 
    Exception message: Session state is not available in this context. 

Request information: 
    Request URL: http://localhost/SVN_WORKSPACE/WWWROOT/WorkEstimateSystem/WebResource.axd?d=gPWI1Nyst2kh_ORsvV-AHCh4GSmizSjDuHRCpBgAKBsmi1Zr6e44K950Zcfsdc4p2GuNTPmRl4yAADV0USSNLFQQ7sk-iY1WVt4JJWJE_yg1&t=633771228432707325 
    Request path: /SVN_WORKSPACE/WWWROOT/WorkEstimateSystem/WebResource.axd 
    User host address: 127.0.0.1 
    User:  
    Is authenticated: False 
    Authentication Type:  
    Thread account name: GREGE6500\ASPNET 

Thread information: 
    Thread ID: 8 
    Thread account name: GREGE6500\ASPNET 
    Is impersonating: False 
    Stack trace:    at System.Web.HttpApplication.get_Session()
   at GlobalClass.CURRENT_EMPLOYEE_ID()
   at GlobalClass.checkLogin(String pagerequested)
   at GlobalClass.Application_OnPostRequestHandlerExecute(Object sender, EventArgs e)
   at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)


Custom event details: 

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

global.asax 有一些会话开始和结束函数以及应用程序开始和结束函数。有没有办法简单地说请求是来自 axd 做不同的事情还是不运行这些自定义函数?

已修复:

在 global.asax 页面内..

    Sub Application_OnPostRequestHandlerExecute(ByVal sender As Object, ByVal e As EventArgs)
select case requestedPageName
   case "webResource.axd"
    exit sub

这解决了它!

【问题讨论】:

    标签: asp.net vb.net visual-studio-2008 webresource.axd obout


    【解决方案1】:

    “Application_OnPostRequestHandlerExecute”方法会在 .Net 处理的任何请求中运行。这包括“webresource.axd”。在该方法中,检查当前 URL 是否为“webresource.axd”。如果是,则不要使用会话。

    【讨论】:

    • 谢谢大卫!这太棒了..我希望我能早点检查我的事件日志!!
    • "检查当前URL是否为"webresource.axd"。如果是,则不要使用会话"你能解释一下吗!谢谢!
    • @Soni:看看问题的编辑部分。 Greg 通过向 Global.asax 添加代码来阻止会话模块触发。
    【解决方案2】:

    我使用的是 Farpoint Spread,它只显示一页,上面有很多行。这是我首先尝试的 c# 版本(它不起作用):

    Global.asax:
        protected void Application_OnPostRequestHandlerExecute(object sender, EventArgs e  )
        {
            String requestedPageName = VirtualPathUtility.GetFileName(Request.FilePath);
            switch (requestedPageName)
            {
                case "WebResource.axd":
                    return;
            }
        }
    

    此链接上的解决方案对我有用,但我不得不提高数字: http://www.acumen-corp.com/Blog/tabid/298/EntryId/8/ASP-NET-Error-ThrowIfMaxHttpCollectionKeysExceeded.aspx

    Web.Config:
       <appSettings>
            <add key="aspnet:MaxHttpCollectionKeys" value="5000" />
       </appSettings>
    

    此相关帖子使用相同的解决方案: 'Operation is not valid due to the current state of the object' error during postback

    【讨论】:

      【解决方案3】:

      在我的例子中,web 目录中有名为 "ScriptResource.axd""Telerik.Web.UI.WebResource.axd" 的子文件夹以及一些 web.config 文件.解决方案是删除此子文件夹。

      【讨论】:

        猜你喜欢
        • 2019-01-17
        • 2011-10-17
        • 2010-11-15
        • 1970-01-01
        • 1970-01-01
        • 2017-04-12
        相关资源
        最近更新 更多