在windows服务里面,获取当前程序的路径是,获取的为什么是:winnt\system32

时间:2022-03-10 20:32:03
我的服务是安装在program files目录里面,为什么每次获取的都是winnt\system32
有什么好办法吗?

17 个解决方案

#1


#2


我用的是
Directory.GetCurrentDirectory()

还有什么获取当前进程路径的方法吗?

#3


windows服务里面???
是用Environment.CurrentDirectory 吗
学习!
up!

#4


try

Console.WriteLine(System.Windows.Forms.Application.ExecutablePath);

Console.WriteLine(System.Reflection.Assembly.GetExecutingAssembly().Location);

#5


谢谢
System.Reflection.Assembly.GetExecutingAssembly().Location

可以获取包括可执行文件的全路径
如果只想获取路径,即不包括可执行文件的路径呢

#6


use System.IO.Path class' GetDirectoryName(....) method

#7


string Temp_Path = System.Reflection.Assembly.GetExecutingAssembly().Location;

Temp_Path = Temp_Path.Substring(0,Temp_Path.LastIndexOf(@"\"));

#8


学习

#9


Application.StartupPath;

#10


System.IO.Path.GetDirectorName(Application.ExecuteablePath)

#11


up

#12


因为提供服务的程序中system目录中,使用HttpRuntime.AppDomainAppPath可以得到应用服务的路径,即你所需要的路径,这里类似winform中Application.StartupPath和Directory.GetCurrentDirectory()功能,但是在web不能使用后面这两个东东!!

#13


我的代码:
 该函数由界面 建立多线程,是服务器端程序,oSocket 由服物器端监听 Socket   oSocket=m_oTcpListener.AcceptSocket(); 得到
public void GetInfo()
{
   while  (oSocket.Connected )
   {
     NetworkStream mystream =new NetworkStream(oSocket);
    if (mystream.CanRead)
    {
            //读取数据
     }
}
 问题:
    1) 当客户端非正常退出时, 发现 oSocket.Connected=true
     此时服务器端 cpu 占用100%
    我该如何判端客户端非法退出(如断电,非法关机等)

#14


我的代码:
 该函数由界面 建立多线程,是服务器端程序,oSocket 由服物器端监听 Socket   oSocket=m_oTcpListener.AcceptSocket(); 得到
public void GetInfo()
{
   while  (oSocket.Connected )
   {
     NetworkStream mystream =new NetworkStream(oSocket);
    if (mystream.CanRead)
    {
            //读取数据
     }
}
 问题:
    1) 当客户端非正常退出时, 发现 oSocket.Connected=true
     此时服务器端 cpu 占用100%
    我该如何判端客户端非法腿出(如断电,非法关机等)
QQ: 120583292

#15


1、添加 System.Windows.Forms.dll

2、using System.Windows.Forms;

3、用以下方法之一:
  Application.StartupPath;(不包括可执行文件名称)
  Application.ExecutablePath;(包括可执行文件名称)

try it!

#16


gz

#17


Environment.CurrentDirectory  --获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。

Application.ExecutablePath --获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。

System.Environment.CurrentDirectory -- 获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。

#1


#2


我用的是
Directory.GetCurrentDirectory()

还有什么获取当前进程路径的方法吗?

#3


windows服务里面???
是用Environment.CurrentDirectory 吗
学习!
up!

#4


try

Console.WriteLine(System.Windows.Forms.Application.ExecutablePath);

Console.WriteLine(System.Reflection.Assembly.GetExecutingAssembly().Location);

#5


谢谢
System.Reflection.Assembly.GetExecutingAssembly().Location

可以获取包括可执行文件的全路径
如果只想获取路径,即不包括可执行文件的路径呢

#6


use System.IO.Path class' GetDirectoryName(....) method

#7


string Temp_Path = System.Reflection.Assembly.GetExecutingAssembly().Location;

Temp_Path = Temp_Path.Substring(0,Temp_Path.LastIndexOf(@"\"));

#8


学习

#9


Application.StartupPath;

#10


System.IO.Path.GetDirectorName(Application.ExecuteablePath)

#11


up

#12


因为提供服务的程序中system目录中,使用HttpRuntime.AppDomainAppPath可以得到应用服务的路径,即你所需要的路径,这里类似winform中Application.StartupPath和Directory.GetCurrentDirectory()功能,但是在web不能使用后面这两个东东!!

#13


我的代码:
 该函数由界面 建立多线程,是服务器端程序,oSocket 由服物器端监听 Socket   oSocket=m_oTcpListener.AcceptSocket(); 得到
public void GetInfo()
{
   while  (oSocket.Connected )
   {
     NetworkStream mystream =new NetworkStream(oSocket);
    if (mystream.CanRead)
    {
            //读取数据
     }
}
 问题:
    1) 当客户端非正常退出时, 发现 oSocket.Connected=true
     此时服务器端 cpu 占用100%
    我该如何判端客户端非法退出(如断电,非法关机等)

#14


我的代码:
 该函数由界面 建立多线程,是服务器端程序,oSocket 由服物器端监听 Socket   oSocket=m_oTcpListener.AcceptSocket(); 得到
public void GetInfo()
{
   while  (oSocket.Connected )
   {
     NetworkStream mystream =new NetworkStream(oSocket);
    if (mystream.CanRead)
    {
            //读取数据
     }
}
 问题:
    1) 当客户端非正常退出时, 发现 oSocket.Connected=true
     此时服务器端 cpu 占用100%
    我该如何判端客户端非法腿出(如断电,非法关机等)
QQ: 120583292

#15


1、添加 System.Windows.Forms.dll

2、using System.Windows.Forms;

3、用以下方法之一:
  Application.StartupPath;(不包括可执行文件名称)
  Application.ExecutablePath;(包括可执行文件名称)

try it!

#16


gz

#17


Environment.CurrentDirectory  --获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。

Application.ExecutablePath --获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。

System.Environment.CurrentDirectory -- 获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。