1

只是对新的 IIS 和 ASP.Net4 有一些问题,我在旧服务器中使用旧版本的上传系统。现在我的要求是将上传系统放入新服务器并使其运行。一开始很容易,但现在我遇到了一些问题。我可以登录和下载文件,效果很好,但如果我只是尝试上传文件,则会收到如下错误:

“/DownloadManager”应用程序中的服务器错误。
System.NullReferenceException:对象引用未设置为对象的实例。
在 DimpleSoftwares.KFileUploadPlus.KRequestStream.Read(Byte[] 缓冲区,Int32 偏移
量,Int32 计数)
在 DimpleSoftwares.KFileUploadPlus.KUploadRequest..ctor( KRequestStream s, String strFileName, UploadModule UpLoadModule, Encoding 编码)

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:
System.Exception:System.NullReferenceException:对象引用未设置为对象的实例。
在 DimpleSoftwares.KFileUploadPlus.KRequestStream.Read(Byte[] 缓冲区,Int32 偏移
量,Int32 计数)
在 DimpleSoftwares.KFileUploadPlus.KUploadRequest..ctor( KRequestStream s, String strFileName, UploadModule UpLoadModule, Encoding 编码)

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

堆栈跟踪:

[异常:System.NullReferenceException:对象引用未设置为对象的实例。
在 DimpleSoftwares.KFileUploadPlus.KRequestStream.ReadPreloaded(Byte[] 缓冲区,Int32 偏移量,Int32 计数)
在 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, Encoding encoding) +2225 DimpleSoftwares.KFileUploadPlus.UploadModule.context_BeginRequest(Object sender, EventArgs e) +1766
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +165

我只是想知道我该如何解决这个问题?我必须在 IIS 中手动添加模块吗?因为例如我找不到System.Web.SyncEventExecutionStepSystem.Web.HttpApplication.ExecuteStep

我真的错过了一些东西,我没有看到它......

4

2 回答 2

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 会删除 v4.0,这与以前的 .NET 版本不同(例如 v3.0、v3.5,其中删除 3.5 不一定会删除 3.0 )。

希望这会有所帮助。

于 2013-04-08T01:20:12.820 回答
0

我知道为时已晚,但它会帮助别人。只需转到应用程序属性-> 构建-> 将平台目标更改为 x64 或“任何 CPU”。使用此设置,它应该可以工作。

于 2015-06-24T12:59:56.947 回答