2017-05-16 42 views
-1

我可以從debug文件夾下的不同用戶名下啓動appname.vshost.exe,而不是用來啓動VisualStudio的用戶名嗎?以不同的用戶身份運行vshost.exe

appname.vshost.exe.config以下內容。有沒有配置用戶名?我試圖尋找它,但找不到任何東西。

<configuration> 
    <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> 
    </startup> 
</configuration> 
+0

你想用這個做什麼? – dymanoid

+0

它與[模擬用戶下的主機wcf](http://stackoverflow.com/questions/43942695/...)相關。不知何故,我想從我的控制檯應用程序中啓動特定用戶下的進程,並在該進程中運行主機wcf,以便我的服務在該模擬用戶下運行。 – Alpesh

回答

0

我不認爲你可以在不同的用戶下啓動vshost.exe,而不是你用來啓動Visual Studio的用戶。所以,現在我從另一個控制檯應用程序的不同用戶下啓動主控制檯應用程序,並將調試程序附加到它並且它可以工作

我已經複製下面的代碼,如果它可以幫助任何人。

using System; 
using System.Linq; 
using System.Runtime.InteropServices; 
using System.Security; 
using EnvDTE80; 
using Process = System.Diagnostics.Process; 

namespace StartService 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var secure = new SecureString(); 
      foreach (var c in "password-from-config") 
      { 
       secure.AppendChar(c); 
      } 

      Process process = null; 

      try 
      { 
       process = Process.Start(@"C:\Test Projects\WcfServiceTest\WcfServiceTest\bin\Debug\WcfServiceTest.exe", 
        "TestUser", secure, "DomainName"); 

       Attach(GetCurrent()); 

       Console.ReadKey(); 
      } 
      finally 
      { 
       if (process != null && !process.HasExited) 
       { 
        process.CloseMainWindow(); 
        process.Close(); 
       }  
      } 
     } 

     public static void Attach(DTE2 dte) 
     { 
      var processes = dte.Debugger.LocalProcesses; 
      foreach (var proc in processes.Cast<EnvDTE.Process>().Where(proc => proc.Name.IndexOf("WcfServiceTest.exe") != -1)) 
       proc.Attach(); 
     } 

     internal static DTE2 GetCurrent() 
     { 
      var dte2 = (DTE2)Marshal.GetActiveObject("VisualStudio.DTE.12.0"); // Specific to VS2013 

      return dte2; 
     } 
    } 
} 
1

如果你想運行debugg可執行 您可以嘗試右移點擊運行爲不同的用戶。

或者您是否想通過配置以不同的用戶身份運行?

+0

要詢問詳情,請使用問題下面的評論。如果您不確定問題的具體內容,請不要發佈答案。 – dymanoid

+0

@Arukaito'appname.vshost.exe'從Visual Studio開始,不能單獨運行。我曾嘗試過它,並且總是有一個vshost在與VS相同的用戶下爲您的應用運行。我只想看看是否有人對將其配置爲使其在不同的用戶下運行有任何想法。 – Alpesh

+0

我相信這是一個真正的問題,人們仍然對它投票。我花了2天時間嘗試不同的解決方案,然後發佈了這個問題。 – Alpesh