0

我正在使用 Net framework 4.0 和 Sql Server 2012 进行开发。在 asp.net 中的 web 应用程序中执行数据库操作时随机发生错误。我已经从文件后面的代码中调用了一些 sql 查询。它发生在大小大于 300KB 的大型文档中。如何增加尺寸。

编辑 :

它主要发生在查看图像文件和在数据库中保存二进制数据时

下面是我得到错误的代码

        int isUpdateIDProof = 1;
        SqlParameter paramInsertIDProof = null;
        SqlCommand cmdInsertIDProof = new SqlCommand("OnBoarding_InsertUploadedIDProof", con);
        cmdInsertIDProof.CommandType = CommandType.StoredProcedure;

        paramInsertIDProof = new SqlParameter("@FileCaption", SqlDbType.VarChar, 100);
        paramInsertIDProof.Direction = ParameterDirection.Input;
        paramInsertIDProof.Value = txtIDProofDescription.Text;
        cmdInsertIDProof.Parameters.Add(paramInsertIDProof);

        paramInsertIDProof = new SqlParameter("@FileData", SqlDbType.VarBinary,1000000000);
        paramInsertIDProof.Direction = ParameterDirection.Input;
        paramInsertIDProof.Value = OnBoardingFileData;
        cmdInsertIDProof.Parameters.Add(paramInsertIDProof);

        paramInsertIDProof = new SqlParameter("@FileNames", SqlDbType.VarChar, 100);
        paramInsertIDProof.Direction = ParameterDirection.Input;
        paramInsertIDProof.Value = fileName;
        cmdInsertIDProof.Parameters.Add(paramInsertIDProof);

        //execute SQL COMMAND 
        con.Open();
        cmdInsertIDProof.ExecuteNonQuery();
        con.Close();
4

2 回答 2

3

您的code. 通过存储图像的方式,这完全与数据库服务器上的内存泄漏有关。如果您使用任何 sql server 项目 dll 来压缩和解压缩二进制数据,请检查此。

要隐藏您的错误,您可以重新启动 sql server 服务。它将自动刷新内存并开始正常工作。几年前我遇到了同样的问题。

于 2013-05-30T07:12:48.647 回答
0

这不是来自 asp.net 编码方面的问题。当处理您的请求并找到更少的内存来执行脚本时,这会发生在 Sql server 中。

在我们运行 SQL CLR 存储过程并面临类似问题的标准之一中,我也遇到了这个问题。

下面的文章可能会有所帮助:- https://www.johnsansom.com/sql-server-memory-configuration-determining-memtoleave-settings/

本文解释了“memToleave”,它是用于有效使用内存的虚拟地址空间。

于 2017-04-18T09:05:11.247 回答