刚刚遇到新的IIS和ASP.Net4的问题,我在旧服务器中使用旧版本的上传系统。 现在我的要求是将上传系统放入新服务器并使其运行。一开始很容易,但现在我遇到了一些问题。我可以登录和下载文件,效果很好,但如果我只是尝试上传文件,那么我会收到如下错误:
'/ DownloadManager'应用程序中的服务器错误。
System.NullReferenceException:未将对象引用设置为实例 一个物体。
在 DimpleSoftwares.KFileUploadPlus.KRequestStream.ReadPreloaded(字节[] 缓冲区,Int32偏移量,Int32计数)
at DimpleSoftwares.KFileUploadPlus.KRequestStream.Read(Byte []缓冲区, Int32偏移,Int32计数)
在 DimpleSoftwares.KFileUploadPlus.KUploadRequest..ctor(KRequestStream s, String strFileName,UploadModule UpLoadModule,Encoding encoding)
描述:执行期间发生未处理的异常 当前的网络请求。请查看堆栈跟踪了解更多信息 有关错误的信息以及它在代码中的起源。
异常详细信息:
System.Exception:System.NullReferenceException: 对象引用未设置为对象的实例。
at DimpleSoftwares.KFileUploadPlus.KRequestStream.ReadPreloaded(字节[] 缓冲区,Int32偏移量,Int32计数)
at DimpleSoftwares.KFileUploadPlus.KRequestStream.Read(Byte []缓冲区, Int32偏移,Int32计数)
在 DimpleSoftwares.KFileUploadPlus.KUploadRequest..ctor(KRequestStream s, String strFileName,UploadModule UpLoadModule,Encoding encoding)来源错误:
执行期间生成了未处理的异常 当前的网络请求。有关的来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
堆栈追踪:
[例外:System.NullReferenceException:对象引用未设置为 一个对象的实例。
at DimpleSoftwares.KFileUploadPlus.KRequestStream.ReadPreloaded(字节[] 缓冲区,Int32偏移量,Int32计数)
at DimpleSoftwares.KFileUploadPlus.KRequestStream.Read(Byte []缓冲区, Int32偏移,Int32计数)
在 DimpleSoftwares.KFileUploadPlus.KUploadRequest..ctor(KRequestStream s, String strFileName,UploadModule UpLoadModule,Encoding encoding)]
DimpleSoftwares.KFileUploadPlus.KUploadRequest..ctor(KRequestStream s, String strFileName,UploadModule UpLoadModule,编码编码) +2225 DimpleSoftwares.KFileUploadPlus.UploadModule.context_BeginRequest(Object 发件人,EventArgs e)+1766
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)+165
我只是想知道如何解决这个问题?我必须在IIS中手动添加模块?因为例如我找不到 System.Web.SyncEventExecutionStep 或 System.Web.HttpApplication.ExecuteStep
我真的错了什么而我看不到......
答案 0 :(得分:0)
我遇到了类似的问题"对象引用未设置为对象的实例"之前和它主要是由于.NET v4.5。
如果可能(除非您确实需要v4.5),您是否可以尝试将.NET Framework从v4.5降级到v4.0并再次运行代码。版本4.5实际上并未显示在IIS ApplicationPool中,因此当您看到您的Web应用程序向您显示它使用的是v4.0时,可能会产生混淆。请注意,当您卸载4.5时,您必须重新安装v4.0,因为卸载v4.5与之前版本的.NET不同,因为它取消了v4.0(例如v3.0,v3.5,其中删除3.5以及必然删除3.0)。
希望这会有所帮助。
答案 1 :(得分:0)
我知道现在为时已晚,但这对其他人有帮助。 只需转到应用程序属性 - >构建 - >将平台目标更改为x64或“任何CPU”。 使用此设置它应该可以工作。