0

我有一个带有上传部分的 WebApp。
要将文件上传到 sql 数据库,我使用了 Ajax Toolkit Fileupload 控件。

我总是遇到与这篇文章类似的错误,但经过数小时的测试,我找出了导致我的问题的原因。

我的上传控件位于 SidDetails.aspx 页面上,如果直接使用
foo.com/Pages/SID/SidDetails.aspx
打开页面, 我可以上传文件。

页面路由

但是如果我通过路由
foo.com/SID/My/1
访问该页面, 我会收到 500 内部服务器错误

所以我检查了导致异常的页面链接
foo.com/SID/My/1/?contextKey={DA8BEDC8-B952-4d5d-8CC2-59FE922E2923}&done=1&guid=BD327457-2013-1E97-6ADE-28612D63758E

对我来说,这似乎是问题所在,但我不知道如何解决这个问题。
我已经尝试添加带有查询值的路线
带查询的路由
但我不知道这是否是您处理它的方式。


找不到路径“C:\Windows\TEMP_AjaxFileUpload\E0E386A6-F5B5-1012-F6E5-1872E4D6EF69”的一部分。
这就是上传控件引发的异常。

我想保留路线,但我该如何解决这个问题?

我正在使用 Visual Studio 2012、.net 4.5 和 AjaxControlToolkit 7.0930

亲切的问候
CarnVanBeck

4

2 回答 2

1

我也遇到了这个,发疯后我修好了。

  1. 下载ajaxtoolkit源代码项目并打开。

  2. 更改以下行:

    this._uploadUrl = 'AjaxFileUploadHandler.axd';
    

    至:

    this._uploadUrl = '/AjaxFileUploadHandler.axd';
    
  3. 重建项目,获取新项目.dll并将其复制到您的/bin目录。

这将解决问题,为处理程序提供正确的路径。

PS:我是这样来的:

  • 我注意到对处理程序的一些奇怪的重复调用,仅发生www.site.com/projects/edit/mypage在上传失败的路由路径(如)中。

  • 我注意到,在放置在我网站的主目录中的测试页面中,上传器工作正常。

然后我来到这个页面并注意到提到的行。

于 2013-10-17T22:37:18.247 回答
0

如果您的应用程序在集成模式池中运行,则必须在 web.config 文件中添加以下行:

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <handlers>
      <add name="AjaxFileUploadHandler" verb="*" path="AjaxFileUploadHandler.axd" 
                 type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit" />
    </handlers>
    <validation validateIntegratedModeConfiguration="false"/>
  </system.webServer>
于 2015-10-16T18:49:58.870 回答