小编McG*_*Gaz的帖子

Azure SQL数据库连接问题 - 连接太多?

我有一个网站,这是我最近推出的白色标签(同一网站的多个版本).目前还没有大量的流量 - 主要是机器人,但每天可能有800个用户.除了位于非天蓝服务器上的管理面板之外,它还在Azure上托管Azure数据库.两个站点都连接到同一个Azure数据库.还有一些工作人员角色正在运行以处理数据 - 99%的时间他们没有做任何事情,但他们会定期检查.

我总是遇到随机错误,持续几秒钟然后再次没问题,例如:

从服务器接收结果时发生传输级错误.(提供程序:TCP提供程序,错误:0 - 远程主机强制关闭现有连接.)

然而,今天早上,我们遇到了一个更严重的问题.它始于:

System.ComponentModel.Win32Exception:远程主机强制关闭现有连接

这是在机器人(谷歌,百度,AhrefsBot和Wiseguys.nl)索引该网站时发生的.我从这些中得到了一个或多个错误.然后我得到了:

System.Data.SqlClient.SqlException:服务在处理您的请求时遇到错误.请再试一次.错误代码40143.当前命令发生严重错误.结果(如果有的话)应该被丢弃.

这是在ExecuteReader阶段.

10分钟后,真正的问题来了 - 这意味着没有人可以登录到管理界面,但是当我测试它时,Azure托管的网站似乎没问题,尽管机器人仍然会出现错误.问题是:

System.ComponentModel.Win32Exception:等待操作超时

这继续随机连接打开和关闭大约一个小时.然后我遇到了另一个问题:

System.Data.SqlClient.SqlException:资源ID:1.数据库的请求限制为180且已达到.有关帮助,请参阅" http://go.microsoft.com/fwlink/?LinkId=267637 ".

这发生在最后一小时的开关 - 主要是工人角色.然后我试图找出占用所有这些请求的内容,我发现了这个命令:

SELECT*FROM sys.dm_exec_requests

当我一遍又一遍地运行它时,它只返回了1或2个请求.

所以我的问题是:1)是否有其他人经常相对定期(一次,可能一天两次)与Azure上托管的服务器暂时断开连接?2)上述事件列表是否表明存在特定问题?当大量管理员一次登录时,可能都会发生这种情况.3)当我收到180限制消息时,如何更好地调试对数据库的请求数?

提前致谢.

c# connectivity azure-sql-database

15
推荐指数
1
解决办法
4294
查看次数

Linq存储过程超时但SSMS快速

我有一个存储过程,我使用LinqToSQL调用.我根本没做什么特别的事,比如说

MyDataContext db = new MyDataContext()

var results = db.storedProcedure(param1, param2, param3)

// Do stuff
Run Code Online (Sandbox Code Playgroud)

当我使用完全相同的参数运行存储过程时,我得到2到6秒之间的结果.该数据库是一个远程数据库.

但是,当我运行存储过程时(经过调试......)275秒!在正常情况下,这会产生以下异常:

[Win32Exception(0x80004005):等待操作超时]

[SqlException(0x80131904):超时已过期.操作完成之前经过的超时时间或服务器没有响应.] System.Data.SqlClient.SqlConnection.OnError(SqlException异常,Boolean breakConnection,Action 1 wrapCloseInAction) +1753346 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction)+5295154 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning( TdsParserStateObject stateObj,Boolean callerHasConnectionLock,Boolean asyncClose)+242 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,Boolean&dataReady)+1682 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData ()+59 System.Data.SqlClient.SqlDataReader.get_MetaData()+90 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,RunBehavior runBehavior,String resetOptionsString)+365 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior ,RunBehavior runBehavior,Boolean returnStream,Boolean async,Int32 timeout,Task&task,Boolean asyncWrite)+1325 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,String method,TaskCompletionSource`1 completion,Int32 timeout,Task&task,Boolean asyncWrite)+175 System.Data.SqlClient.SqlCommand .RunExecuteReader(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,String method)+53 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior,String method)+134 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)+41 System.Data.Common.DbCommand.ExecuteReader()+12 System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query,QueryInfo queryInfo,IObjectReaderFactory …

sql linq timeout linq-to-sql

7
推荐指数
1
解决办法
2043
查看次数

MVC 4部分与单独的控制器和视图

我已经开发了一段时间的ASP.NET Forms,现在我正在尝试学习MVC但是如何让它做我想做的事并没有完全意义.也许我需要以不同的方式思考问题.这是我正在尝试用一个简单的例子做的事情:

目标 - 使用部分文件,该部分文件可以放置在站点上接受参数的任何位置.该参数将用于转到数据库并将生成的模型传递回视图.然后,视图将显示一个或多个模型属性.

这不是我的代码,但显示了我正在尝试做的事情.

文件:Controllers/UserController.cs

[ChildActionOnly]
public ActionResult DisplayUserName(string userId)
{
MyDataContext db = new MyDataContext()

var user = (from u in db.Users where u.UserId = userId select u).FirstOrDefault();

return PartialView(user);
}
Run Code Online (Sandbox Code Playgroud)

文件:Views/Shared/_DisplayUserName.cs

@model DataLibrary.Models.User

<h2>Your username is: @Model.UserName</h2>
Run Code Online (Sandbox Code Playgroud)

文件:Views/About/Index.cshtml

@{
    ViewBag.Title = "About";
}

<h2>About</h2>

{Insert Statement Here}
Run Code Online (Sandbox Code Playgroud)

我知道此时我需要渲染一个名为DisplayUserName的部分,但是它如何知道要使用哪个视图以及如何将userId传递给部分?

这是我期望的一个非常基本的问题,但我还没有找到一个涵盖这个问题的教程.

在此先感谢您的帮助.

controller partial asp.net-mvc-4

5
推荐指数
1
解决办法
1万
查看次数