我的网站上有很多用户(每天20000-60000),这是一个移动文件的下载站点.我可以远程访问我的服务器(Windows Server 2008-R2).
我之前收到"服务器不可用"错误,但现在看到连接超时错误.
我不熟悉这个 - 它为什么会发生,我该如何解决?
完整错误如下:
'/'应用程序中的服务器错误.超时已过期.操作完成之前经过的超时时间或服务器没有响应.该语句已终止.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.Data.SqlClient.SqlException:超时已过期.操作完成之前经过的超时时间或服务器没有响应.该语句已终止.
来源错误:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
堆栈跟踪:
[SqlException(0x80131904):超时已过期.操作完成之前经过的超时时间或服务器没有响应.语句已终止.]
System.Data.SqlClient.SqlConnection.OnError(SqlException异常,Boolean breakConnection
)+404
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()+ 412 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior ,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj)+1363
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,RunBehavior runBehavior,String resetOptionsString)+6387741
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,Boolean async)+6389442
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,String method,DbAsyncResult result)+538
System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName,Boolean sendToPipe)+689
System.Data.SqlClient.SqlCommand.Execu teNonQuery()+ 327
NovinMedia.Data.DbObject.RunProcedure(String storedProcName,IDataParameter []参数,Int32和rowsAffected)+209
DataLayer.OnlineUsers.Update_SessionEnd_And_Online(Object Session_End,Boolean Online)+440
NiceFileExplorer.Global.Application_Start(Object sender,EventArgs e)+163[HttpException(0x80004005):超时已过期.操作完成之前经过的超时时间或服务器没有响应.该语句已被终止.]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context,HttpApplication app)+4052053
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext,HttpContext context,MethodInfo [] handlers)+191
System.Web.HttpApplication. InitSpecial(HttpApplicationState状态,MethodInfo的[]处理程序,IntPtr的appContext,HttpContext的上下文)352
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr的appContext,HttpContext的上下文)407
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr的appContext)375[HttpException(0x80004005):超时已过期.操作完成之前经过的超时时间或服务器没有响应.该语句已被终止.]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+11686928 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+141 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext …
我有一个开发数据库,经常从Visual Studio数据库项目(通过TFS自动构建)重新部署.
有时当我运行我的构建时,我收到此错误:
ALTER DATABASE failed because a lock could not be placed on database 'MyDB'. Try again later.
ALTER DATABASE statement failed.
Cannot drop database "MyDB" because it is currently in use.
Run Code Online (Sandbox Code Playgroud)
我试过这个:
ALTER DATABASE MyDB SET RESTRICTED_USER WITH ROLLBACK IMMEDIATE
Run Code Online (Sandbox Code Playgroud)
但我仍然无法删除数据库.(我的猜测是大多数开发人员都dbo可以访问.)
我可以手动运行SP_WHO并开始查杀连接,但我需要一种自动方式在自动构建中执行此操作.(虽然这次我的连接是我试图丢弃的数据库中唯一的连接.)
是否有一个脚本可以删除我的数据库,无论谁连接?
目前,我的数据库处于单用户模式.当我尝试扩展数据库时,我收到一个错误:
无法访问数据库'my_db'.(ObjectExplorer)
此外,当我尝试删除数据库时,我收到错误:
目前无法更改数据库'my_db'的状态或选项.数据库处于单用户模式,用户当前已连接到该用户.
如何退出单用户模式?我没有任何用户使用此数据库.
当我尝试使用IIS浏览我的网站时,我得到的错误是:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
我觉得好像单用户模式导致了这种情况.
我需要检查上次功能何时更改.我知道如何检查创建日期(它位于SQL Server Management Studio的函数属性窗口中).
我发现在SQL Server 2000中无法检查修改日期(请看这篇文章:是否可以确定SQL Server 2000中最后一次修改存储过程的时间?)
是否可以在SQL Server 2008中进行检查?MS是否在系统表中添加了一些允许检查它的新功能?
stored-procedures sql-function sql-server-2008 sql-server-2008-r2
可能重复:
SQL Server:检查表是否存在
CREATE TABLE IF NOT EXISTS适用于mysql但SQL Server 2008 R2失败.什么是等效语法?
我正在使用此查询重命名数据库:
ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]
Run Code Online (Sandbox Code Playgroud)
但它在排除时显示错误:
消息5030,级别16,状态2,行1
无法独占锁定数据库以执行操作.
我的查询有什么问题吗?
我如何查询我的SQL服务器只获取数据库的大小?
我用过这个:
use "MY_DB"
exec sp_spaceused
Run Code Online (Sandbox Code Playgroud)
我懂了 :
database_name database_size unallocated space
My_DB 17899.13 MB 5309.39 MB
Run Code Online (Sandbox Code Playgroud)
它返回了我不需要的几个列,也许有一个从这个存储过程中选择database_size列的技巧?
我也试过这段代码:
SELECT DB_NAME(database_id) AS DatabaseName,
Name AS Logical_Name,
Physical_Name,
(size * 8) / 1024 SizeMB
FROM sys.master_files
WHERE DB_NAME(database_id) = 'MY_DB'
Run Code Online (Sandbox Code Playgroud)
它给了我这个结果:
DatabaseName Logical_Name Physical_Name SizeMB
MY_DB MY_DB D:\MSSQL\Data\MY_DB.mdf 10613
MY_DB MY_DB_log D:\MSSQL\Data\MY_DB.ldf 7286
Run Code Online (Sandbox Code Playgroud)
所以我写了这个:
SELECT SUM(SizeMB)
FROM (
SELECT DB_NAME(database_id) AS DatabaseName,
Name AS Logical_Name,
Physical_Name,
(size * 8) / 1024 SizeMB
FROM sys.master_files
WHERE DB_NAME(database_id) = 'MY_DB'
) AS TEMP …Run Code Online (Sandbox Code Playgroud) 我有MS SQL 2008 R2,500个数据库.什么是查询所有数据库大小的最有效,最简单和"现代"的方法.
输出应该有列:
我__CODE__在sql server 2008中编写一个我需要检查__CODE__数据库中是否存在,如果没有,那么我需要创建它.
我该怎么做?
我安装了MS SQL Server 2008 R2,当我尝试在EDMX文件下从数据库更新模型时,我遇到了这个错误.
无法加载文件或程序集Microsoft.SqlServer.management.sdk.sfc版本11.0.0.0
sql-server ×7
sql ×6
t-sql ×3
.net ×1
asp.net ×1
c# ×1
sql-function ×1
sqlcommand ×1
timeout ×1