2009-05-05 74 views
3

我尝试使用来自obout控制库中的文件上传控件,我真的很喜欢它,并认为它很光滑,没有任何闪光..Webresource.axd? - !500内部服务器错误

我下载了整个安装程序,使用了与样品中的设置,并使控制完全按照我的意愿行事。

我在vs2008中创建了一个全新的web应用程序,并且包含了web.config,dll和带有样式代码的文件夹,以及我调整后给出所需输出的aspx页面。

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


现在我想在我一直在已有的项目中使用这个,所以我复制web.config中值,动态链接库,并与样式代码的文件夹和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做一些不同的事情或不运行这些自定义函数?

FIXED:

在Global.asax页面内..

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

这个固定!

回答

5

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

+0

谢谢大卫!这太棒了..我希望我早点检查我的活动日志! – 2009-05-05 19:31:41

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> 

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