使用 2013 年 4 月的 AjaxControlToolkit 时,我收到错误:
0x800a139e - JavaScript 运行时错误:错误引发上传完成事件并开始新上传
尝试使用 AjaxFileUpload 控件上传文件时。
使用 2013 年 4 月的 AjaxControlToolkit 时,我收到错误:
0x800a139e - JavaScript 运行时错误:错误引发上传完成事件并开始新上传
尝试使用 AjaxFileUpload 控件上传文件时。
确保 web.config 中应该存在以下内容。
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" maxRequestLength="42949672" />
<httpHandlers>
<add verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit"/>
</httpHandlers>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<handlers>
<add name="AjaxFileUploadHandler" verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit"/>
</handlers>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="4294967295"/>
</requestFiltering>
</security>
</system.webServer>
</configuration>
要解决错误,您需要添加此
<httpHandlers>
<add verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit"/>
</httpHandlers>
在你的
<system.web>
您的 web.config 的部分
如果您的应用程序池设置为经典,那么除非您使用 precondition=”integratedMode” 添加到 system.webserver 的 httphandler
<add name="AjaxFileUploadHandler" verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit" preCondition="integratedMode"/>
切换到4.5后有同样的问题。直到我添加了完整的组件名称,建议的解决方案才起作用:
<httpHandlers>
<add verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit, Version=4.5.7.725, Culture=neutral, PublicKeyToken=28F01B0E84B6D53E" />
</httpHandlers>
事实证明,如果你在“旧”gac 中有 3.5 版本,在新的 Microsoft.net/assembly gac 中有 4.5,你的 webapp(IIS?)不会选择正确的!?
由于我的应用程序使用表单身份验证,我将其添加到我的 web.config 以使 ajaxfileupload 工作:
<location path="AjaxFileUploadHandler.axd">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
如果即使在@sridharnetha 所说的更改之后仍有人面临这个问题,请尝试包括以下几行。
添加 UseAbsoluteHandlerPath ="false" 很重要
<ajax:AjaxFileUpload ID="AjaxFileUpload11" runat="server"
MaximumNumberOfFiles="3" AllowedFileTypes="txt,xls,xlsx,doc,docx,pdf"
Width="400px" UseAbsoluteHandlerPath ="false"
OnUploadComplete="OnUploadComplete"
OnClientUploadStart="UploadStart"
OnClientUploadCompleteAll="UploadComplete"
ClearFileListAfterUpload="true"
OnClientUploadError="UploadError"/>
在 Web.config 中
<httpHandlers>
<add verb="*" path="http://localhost/AjaxFileUploadHandler.axd"
type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit" />
</httpHandlers>