有没有办法在 ASP.Net 网页上显示和显示 SQL Server 实例、配置和活动的服务器仪表板报告?我知道 SQL Server 2008 R2 具有生成标准报告的内置功能,关于如何在 ASP.Net/C# 中为最终用户视图复制和带来该报告的任何想法?非常感谢您的帮助。
1 回答
以下是在 MS SQL Server 2008 R2 中使用外部 URL 链接配置和显示服务器仪表板性能的步骤:
在 MS SQL Server 2008 R2 中显示性能仪表板报告:
1-从以下网址 下载 Microsoft SQL Server 2012 性能仪表板报告: http ://www.microsoft.com/en-us/download/details.aspx?id= 29063 通过执行 setup.sql 从 SSMS 运行脚本
2- 下载后,您可以通过转到 SQL Server Management Studio 并连接到本地服务器来运行报告。在对象资源管理器下右键单击(本地)(SQL Server)> 报告 > 自定义报告...找到 C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Performance Dashboard\performance_dashboard_main.rdl 并运行。你应该得到报告。
使用外部 URL 链接显示性能仪表板报告:
1- 在 MS SQL Server 2008 R2 下,转到配置工具 > Reporting Services 配置管理器并连接到您的本地服务器或单击以找到它(启动报表服务器)。
规格提示:
服务帐户= 使用内置帐户:网络服务(默认)
Web 服务 URL = 为所有配置保留默认值
数据库= [当前报表服务器 db] / 单击 - 更改数据库
行动:选择现有的报表服务器数据库
数据库服务器:
服务器名称 = 与您连接的本地服务器名称相同
身份验证类型 = 当前用户集成安全性(测试连接)数据库:
SQL Server 实例 = 与您连接的本地服务器名称相同
Report Server db = ReportServer
Report Server Mode = Native
Credentials/Login-Password = 保留默认值/AdministratorAccount 以访问外部链接。(推荐)
身份验证类型 = 服务凭据
[当前报告服务器数据库凭据] / 保留默认值
报告管理器 URL =
http://<ComputerName>:80/<YourReportName>
电子邮件设置= 可选
执行帐户= 默认(空白)
加密密钥= 默认
横向扩展部署= 默认
2- 单击报告管理器 URL 的主页链接并上传:C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Performance Dashboard\performance_dashboard_main.rdl
3- 上传后,单击它并在数据源下检查自定义数据源并检查 Windows 集成安全性 > 测试连接。现在,它应该可以工作了。
注意:如果您使用的是 Chrome 或 Safari,页面将不会显示任何内容;因此,您必须找到:C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\js\ReportingServices.js ...并且,将以下脚本添加到文件中:
function pageLoad() {
var element = document.getElementById("ctl31_ctl09");
if (element) {
element.style.overflow = "visible"; }
}
var jQueryScriptOutputted = false;
function initJQuery() {
//if the jQuery object isn't available
if (typeof (jQuery) == 'undefined') {
if (!jQueryScriptOutputted) {
//only output the script once..
jQueryScriptOutputted = true;
//output the script
document.write("<scr" + "ipt type=\"text/javascript\" src=\"../js/jquery- 1.6.2.min.js\"></scr" + "ipt>");
}
setTimeout("initJQuery()", 50);
} else {
$(function () {
// Bug-fix on Chrome and Safari etc (webkit)
if ($.browser.webkit) {
// Start timer to make sure overflow is set to visible
setInterval(function () {
var div = $('table[id*=_fixedTable] > tbody > tr:last > td:last > div')
div.css('overflow', 'visible');
}, 1000);
}
});
}
}
initJQuery();
I hope it helps someone!