我有一个带有上传部分的WebApp。
要将文件上传到sql数据库,请使用Ajax Toolkit Fileupload控件。
我总是遇到与this post类似的错误,但经过数小时的测试后,我发现了造成问题的原因。
我的上传控件位于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}&安培;做= 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
答案 0 :(得分:1)
我也遇到过这种情况,在疯了之后我就修好了。
下载ajaxtoolkit source code project并将其打开。
更改以下行:
this._uploadUrl = 'AjaxFileUploadHandler.axd';
为:
this._uploadUrl = '/AjaxFileUploadHandler.axd';
重建项目,获取新的.dll
并将其复制到/bin
目录。
这将解决问题,为处理程序提供正确的路径。
PS:我来到这里:
我注意到对处理程序的一些奇怪的重复调用,只发生在路由路径中
(例如www.site.com/projects/edit/mypage
),上传失败。
我注意到在测试页面中,放置在我网站的主目录中,上传工作正常。
然后我来到this页面并注意到上述行。
答案 1 :(得分: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>