Webresource.axd? - 500内部服务器错误

3

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

我下载了整个安装程序,在示例中调整了设置,并使控件完全按照我的要求运行。

我创建了一个全新的Web应用程序,包括web.config、dll和样式代码文件夹以及我调整过的aspx页面,以便输出所需的内容。

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


现在我想在我已经在工作的现有项目中使用它,所以我复制了web.config值、dll和样式代码文件夹以及我调整过的aspx页面。

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

经过一些研究,看起来webresource.axd可用于动态加载JavaScript和CSS文件等。因此,我猜测该控件使用这种隐蔽方式来包含其所需的JavaScript文件,但在这些包含方面失败了,这让我感到困惑。

我已经从项目中删除了所有内容,但仍然失败了。我找到一篇文章,指出这可能是站点的IIS配置问题,所以我检查了一下,我将映射设置为.NET 2.0库文件,并使用axd扩展名。因此,我怀疑那不是问题所在,但我确实删除并重新创建了IIS站点,但它仍然无法正常工作...

我还在web config中包含了这行代码。

<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.

全局.asax文件包含一些会话开始和结束函数以及应用程序开始和结束函数。有没有办法简单地判断请求是否来自axd,如果是,则执行不同的操作或不运行这些自定义函数?

解决方法:

在全局.asax页面内部进行以下操作。

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

这解决了问题!

3个回答

5

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


谢谢David!这太棒了..我希望我早点检查我的事件日志!! - Greg R
检查当前的URL是否为“webresource.axd”。如果是,则不使用会话。你能否解释得更详细一些!谢谢! - Soni Ali
@Soni:看一下问题的编辑部分。Greg通过在Global.asax中添加代码停止了会话模块的触发。 - David

0

我正在使用一个只显示一页有很多行的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>

这篇相关的帖子使用了相同的解决方案: '在回发期间由于对象的当前状态而导致操作无效'错误


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接