Getting Application error when Multiple Images Upload

My customer was trying to do a Multiple Upload of Images in SharePoint 2007 and unfortunately it was always failing with an error: “An error has occurred on the Server”.

Unfortunately we were getting “An error has occurred on the Server” error whenever he tries the multiple upload file option on the sites hosted on Stage/IT Farm but using the same client m/c they are successfully able to add images/document thru multiple upload option on the DEV farm and any new web-apps on the STAGE/IT farm.

Also following are some of the things to note:

1. File size is less than 10KB and we well within the allowed limits.

2. Same XP-Office 2003 client m/c can upload images/docs to other Farm sites (DEV farm) and the same m/c fails for STAGE/IT Farm for old web-app but work for the new web-apps created in the STAGE/IT farm/

3. The problem is only with one-web application, any other web-application on the same environment is fine and multiple image/document upload is working fine.

4. We have checked and there are no Redirects/HTTPModule/HTTPHandler on the old web-app where multiple Images upload is failing.

5. All Server Farms are on the same patch level.

For sure the problem is with this web-application that is failing and not with Client/Environment, as now it is proved that other web-apps on this environment work and all XP/Office m/c are able to upload multiple images/documents on new web-apps.

ULS Logs:

Application error when access /_vti_bin/shtml.dll/PublishingImages/Forms/Upload.aspx, Error=The file '/_vti_bin/shtml.dll/PublishingImages/Forms/Upload.aspx' does not exist. at System.Web.UI.Util.CheckVirtualFileExists(VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert) at System.Web.Compilation.Build...

05/28/2010 13:07:56.97* w3wp.exe (0x0088) 0x1528 Windows SharePoint Services General 8nca Verbose ...Manager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert) at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

SOLUTION:

Actually the virtual directory for the web-app itself was set to SCRIPT only although the _vti_bin was set to SCRIPTS and EXECUTABLE. After setting the web-app virtual directory to SCRIPTS and EXECUTABLE helped resolve the issue, not sure how it was not set to SCRIPTS and EXECUTABLE although other web-apps were set to SCRIPTS and EXECUTABLEs.

 If you were to set the permission to “Scripts” instead of “Scripts and Executables”, you would break SharePoint. If you were look at your IIS logs for SharePoint you will see requests in the “/_vti_bin/” such as: /_vti_bin/shtml.dll/_vti_rpc/SiteDirectory/otherdirectory/_vti_bin/_vti_aut/author.dll. These need the “execute” permission. These are part of the “Windows SharePoint Services V3” web service extension. These are the ISAPI dlls that SharePoint makes POSTs and requires the executeables permission.