尝试从远程计算机上的程序连接到SQL Server时出错

时间:2016-06-17 15:54:19

标签: c# sql-server asp.net-mvc-3 razor

我正在尝试建立一个供员工在办公室使用的系统,以便他们可以从网站上运行某些程序。

他们将能够登录并转到报告页面,单击按钮以在公用服务器上运行报告程序。该程序将连接到SQL Server以获取登录信息,然后登录到另一个站点并以编程方式创建报告并下载它们。

如果我在服务器上将程序作为独立程序运行,它运行正常。我甚至将它作为服务器本身的计划任务运行,并且运行正常。只有当我尝试从网站运行程序时,我才会收到错误说明程序,但由于未处理的异常而终止。以下是事件查看器中错误的堆栈跟踪。

  

申请:趋势报告.exe
  框架版本:v4.0.30319
  描述:由于未处理的异常,该过程终止   异常信息:System.Data.SqlClient.SqlException

     

堆栈:   在System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(System.Data.Common.DbConnection,System.Data.ProviderBase.DbConnectionFactory,System.Threading.Tasks.TaskCompletionSource 1<System.Data.ProviderBase.DbConnectionInternal>, System.Data.Common.DbConnectionOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(System.Data.Common.DbConnection, System.Data.ProviderBase.DbConnectionFactory, System.Threading.Tasks.TaskCompletionSource 1,System.Data.Common.DbConnectionOptions)          在System.Data.SqlClient.SqlConnection.TryOpenInner(System.Threading.Tasks.TaskCompletionSource 1<System.Data.ProviderBase.DbConnectionInternal>) at System.Data.SqlClient.SqlConnection.TryOpen(System.Threading.Tasks.TaskCompletionSource 1)          在System.Data.SqlClient.SqlConnection.Open()          在Trending_Reports.Program.Main(System.String [])

以下是我用来启动该程序的代码。

var processToRun = new[] { @"D:\test\Trending Reports.exe" };

var connection = new ConnectionOptions();
connection.Impersonation = System.Management.ImpersonationLevel.Impersonate;
connection.Username = "Username";
connection.Password = "password";

var wmiScope = new ManagementScope(String.Format("\\\\{0}\\root\\cimv2", "Server"), connection);
wmiScope.Connect();

var wmiProcess = new ManagementClass(wmiScope, new ManagementPath("Win32_Process"), new ObjectGetOptions());
wmiProcess.InvokeMethod("Create", processToRun);

程序本身正在使用多线程。这会导致这个问题吗?或者它可能是一个用户问题,它不在远程计算机上使用我的用户配置文件?

1 个答案:

答案 0 :(得分:0)

您是否已将SQL Server配置为接受远程连接?这是导致错误的常见原因。

您可以按照以下步骤操作:

  • 在所需的SQL Server实例上启用远程连接 从远程计算机连接。
  • 配置SQL服务器以侦听静态端口
  • 启用SQL Server Browser服务。
  • 配置防火墙以允许与之相关的网络流量 SQL Server和SQL Server Browser服务。
这里的

This链接有一个带图片的分步教程(Microsoft SQL Server 2012 Express)。