小编ste*_*far的帖子

枚举C#中的文件句柄

我想知道是否可以枚举c#中的文件句柄,也许使用Win32API.这对于窗口和进程句柄很容易实现,但似乎文件句柄不可能.

虽然NtQuerySystemInformation提供了一些功能,但这已被逐步淘汰,因此不建议使用这种方法.

c# winapi file worker-processes

7
推荐指数
2
解决办法
4244
查看次数

如何通过c#传递多个命令行参数

我需要通过c#传递多个命令行参数,用于名为handle.exe的进程:http://www.google.com.mt/search? sourceid = chrome&ie = UTF-8&q = handlele.exe

首先,我需要通过ADMINISTRATOR权限运行可执行文件.这篇文章帮助我实现了这一点:以 编程方式在cmista中运行cmd.exe作为管理员,c#

但接下来是调用实际行参数的下一个问题,例如"-p explore"

如何一起指定命令行参数,或者可以连续指定?

目前的代码如下:

        Process p = new Process();
        ProcessStartInfo processStartInfo = new ProcessStartInfo("filePath");
        processStartInfo.CreateNoWindow = true;
        processStartInfo.UseShellExecute = false;
        processStartInfo.RedirectStandardOutput = true;
        processStartInfo.RedirectStandardInput = true;
        processStartInfo.Verb = "runas";
        processStartInfo.Arguments = "/env /user:" + "Administrator" + " cmd";

        p.StartInfo = processStartInfo;
        p.Start();
        string output = p.StandardOutput.ReadToEnd();
        p.WaitForExit();
        Console.WriteLine(output);      
Run Code Online (Sandbox Code Playgroud)

谢谢

c# command-line cmd shellexecute command-line-arguments

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

AggregateException中的TaskCanceledException不包含堆栈跟踪

我正在使用任务并行库来运行一个任务 - 当取消时 - 抛出OperationCanceledException,然后使用AggregateException捕获它,如下所示.AggregateException包含TaskCanceledExceptions列表,它对应于抛出的异常.不幸的是,这些TaskCanceledExceptions似乎正在丢失原始异常抛出的堆栈跟踪.这是设计的吗?

try
{
    task1.Wait();
}
catch (AggregateException aggEx)
{
    var tcex = ex as TaskCanceledException;
    if (tcex != null)
    {
        Debug.WriteLine("InnerException:{0}, Message:{1}, Source:{2}, StackTrace: {3}",
            tcex.InnerException, tcex.Message, tcex.Source, tcex.StackTrace);

        return true;
    }
    else
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

结果:

InnerException:, Message:A task was canceled., Source:, StackTrace: 
Run Code Online (Sandbox Code Playgroud)

c# .net-4.0 task-parallel-library cancellation aggregateexception

6
推荐指数
1
解决办法
2371
查看次数

应如何在 Azure 中的异地冗余数据库上创建登录名和用户?

我需要在地理复制数据库上创建登录名和用户。用户将被授予该数据库的“db_datareader”角色。

尝试的方法是使用 SID(相同身份)参数,如下所示:

-- 1. PRIMARY_DATABASE: Run on master database of Primary Database to create login
CREATE LOGIN [LOGINUSER] WITH password='XYZ'
GO

-- 2. Select details for created SQL login
SELECT [name], [sid] 
FROM [sys].[sql_logins] 
WHERE [type_desc] = 'SQL_Login'
AND [name] = 'LOGINUSER'
GO

-- 3. SECONDARY_DATABASE: Run on master database of Secondary Database to create login with associated SID
CREATE LOGIN [LOGINUSER]
WITH PASSWORD = 'XYZ',
SID = <SID from Step 2>
GO
Run Code Online (Sandbox Code Playgroud)

虽然登录创建在两个数据库上都工作正常,但允许我访问 PRIMARY_DATABASE,但拒绝访问 SECONDARY_DATABASE,并出现以下错误:

The server principal …
Run Code Online (Sandbox Code Playgroud)

azure geo-replication azure-sql-database

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