Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql ASP.NET4+;林克_Sql_Asp.net_Linq - Fatal编程技术网

Sql ASP.NET4+;林克

Sql ASP.NET4+;林克,sql,asp.net,linq,Sql,Asp.net,Linq,我正在从事一个使用ASP.NET4C(带Linq)和SQLServer的项目。在我自己的计算机IIS上打开页面并连接到本地sql数据库,所有这些都运行良好。如果从我的计算机用IIS连接到服务器数据库,这是可以的。如果打开已发布页面,则会发生错误(当然,这是因为它从服务器IIS运行,并将连接到服务器数据库)。 服务器事件日志中的错误为 日志名称:应用程序 资料来源:ASP.NET 4.0.30319.0 日期:2015年4月17日下午1:33:11 活动编号:1309 任务类别:Web事件 级别:

我正在从事一个使用ASP.NET4C(带Linq)和SQLServer的项目。在我自己的计算机IIS上打开页面并连接到本地sql数据库,所有这些都运行良好。如果从我的计算机用IIS连接到服务器数据库,这是可以的。如果打开已发布页面,则会发生错误(当然,这是因为它从服务器IIS运行,并将连接到服务器数据库)。 服务器事件日志中的错误为

日志名称:应用程序 资料来源:ASP.NET 4.0.30319.0 日期:2015年4月17日下午1:33:11 活动编号:1309 任务类别:Web事件 级别:警告 关键词:经典 用户:不适用 计算机:SZHDB1.ds.jdsu.net 说明: 活动编号:3005 事件消息:发生未处理的异常。 活动时间:2015年4月17日下午1:33:11 事件时间(UTC):2015年4月17日上午5:33:11 事件ID:89F5A478BF241D3AAA4798CE86AD707 事件顺序:22 事件发生率:1 事件详细信息代码:0

申请资料: 应用程序域:/LM/W3SVC/1/ROOT/IMS-2-130737223782305527 信任级别:完全信任 应用程序虚拟路径:/IMS 应用程序路径:D:\WebSite\IMS\ 机器名称:SZHDB1

过程信息: 进程ID:3944 进程名称:w3wp.exe 帐户名:IIS APPPOOL\ASP.NET v4.0

例外信息: 异常类型:UpdateException 异常消息:更新条目时出错。有关详细信息,请参见内部异常。 位于System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager,IEntITYAAdapter适配器) 位于System.Data.Objects.ObjectContext.SaveChanges(保存选项) 在C:\Users\che57576\Documents\visualstudio 2010\Projects\InstrManage\InstrManage\App\Common中的Log.set_storeLog(字符串值)。cs:第26行 在InstrManage.Admin.Group.GridView\u Group\u选择C:\Users\che57576\Documents\visualstudio 2010\Projects\InstrManage\InstrManage\Admin\Group.aspx.cs中的dexchanged(对象发送方,事件参数e):第164行 位于System.Web.UI.WebControl.GridView.HandleEvent(EventArgs e、Boolean causesValidation、String validationGroup) 在System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)

字符串或二进制数据将被截断。 声明已终止。 位于System.Data.SqlClient.SqlConnection.OneError(SqlException异常,布尔断开连接) 位于System.Data.SqlClient.TdsParser.throweexception和warning()处 在System.Data.SqlClient.TdsParser.Run(RunBehavior RunBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj) 位于System.Data.SqlClient.SqlDataReader.ConsumerMetadata()处 在System.Data.SqlClient.SqlDataReader.get_MetaData()处 位于System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds、RunBehavior、String ResetOptions String) 位于System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior、RunBehavior RunBehavior、Boolean returnStream、Boolean async) 位于System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior RunBehavior、Boolean returnStream、String方法、DbAsyncResult) 位于System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior RunBehavior、Boolean returnStream、String方法) 位于System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior,String方法) 位于System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior) 在System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute(UpdateTranslator转换器、EntityConnection连接、Dictionary
2标识值、List
1生成值) 位于System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager,IEntITYAAdapter适配器)

相关代码如下: “Common.cs”:

public class Log
{
string conn, username;
public string storeLog
{
    set
    {
        using (AdminEntities myEntrities = new AdminEntities(conn))
        {
            IMSlog log = new IMSlog();
            log.user_name = username;
            log.date_time = DateTimeOffset.Now;
            log.what = value;
            myEntrities.IMSlogs.AddObject(log);
            myEntrities.SaveChanges();    //this is line 26
        }
    }
}
public Log(string linqConn,string userName)
{
    conn = linqConn;
    username = userName;
}
}
'Group.aspx.cs':

protected void Page_Load(object sender, EventArgs e)
    {


            log = new Log(sqlconnstr, Session["UserName"].ToString());

    }
在同一页中,如果:

protected void GridView_group_SelectedIndexChanged(object sender, EventArgs e)
    {
        bool result;
        result = Int32.TryParse(GridView_group.SelectedRow.Cells[0].Text.ToString(), out index);
        currentStatus = (GridView_group.SelectedRow.FindControl("CheckBox1") as CheckBox).Checked;
            using (TransactionScope scope = new TransactionScope())
            {
                using (AdminEntities myEntrities = new AdminEntities(sqlconnstr))
                {
                    admin_group c = (from r in myEntrities.admin_group
                                     where r.group_id == index
                                     select r).First();
                    c.group_enable = !currentStatus;
                    myEntrities.SaveChanges();

                    log.storeLog = "Set group ID " + index.ToString() + " to    " + Convert.ToString(!currentStatus);    // this is line 164

                }
                scope.Complete(); //  To commit.

            }

            queryGroup();
    }
当触发上述事件时,将发生错误

我已经搜索了很多时间,不知道为什么我的笔记本电脑是好的,但服务器不能。 我的笔记本电脑是win7和sql express。
服务器是asp.net 4和SQL server 2008。

问题似乎是您试图保存的值太长,无法满足数据库中的可用长度

要找到问题,请查看您试图保存的用户名的长度,并将其与数据库中可用的用户名进行比较

通过在Common.cs中的第26行设置断点,您应该能够看到变量username的内容


一旦发现问题,就可以增加数据库的大小。此外,建议直接在Web应用程序中验证用户名的长度,这样用户就不能在数据库中输入过长的用户名。应向用户发送一条错误消息,要求其使用较短的用户名。

以下分配之一对于您的数据存储来说太大

log.user_name = username;
log.date_time = DateTimeOffset.Now;
log.what = value;

您还可以检查是否为
log.date\u time
分配了正确的值

“字符串或二进制数据将被截断”是根本原因-您的数据超过了列长度并被数据库拒绝。您好,Filburt,感谢您的回复。我刚检查了我的专栏设计。日志id为bigint。datatime是datatimeoffset(0)。用户名是nchar(10),log.what是ntext。这些应该足够大,适合我现在使用。奇怪的是我的电脑IIS+服务器数据库还可以。但是服务器IIS+服务器数据库有这个问题。所有操作都相同。我建议直接检查sql server查询日志,查看要发送哪些值进行更新。您好,Filburt,根据您的指导,我找到了根本原因。用户名应该小于10,但由于某些原因,它得到了错误的值,并超过了该数字,因此会发生错误。非常感谢你!你是对的,我的问题是用户名g