c#&asp.net

C#获取程序当前路径的方法

2009-08-04

下面是一些C#获取程序当前路径的方法

获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名)。

string str = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)

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

string str = System.Environment.CurrentDirectory;
result: X:\xxx\xxx (.exe文件所在的目录)

获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集。

string str = System.AppDomain.CurrentDomain.BaseDirectory;
result: X:\xxx\xxx\ (.exe文件所在的目录+"\")

获取和设置包含该应用程序的目录的名称。

string str = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
result: X:\xxx\xxx\ (.exe文件所在的目录+"\")

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

string str = System.Windows.Forms.Application.StartupPath;
result: X:\xxx\xxx (.exe文件所在的目录)

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

string str = System.Windows.Forms.Application.ExecutablePath;
result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)

获取应用程序的当前工作目录(这个不可靠)

string str = System.IO.Directory.GetCurrentDirectory();
result: X:\xxx\xxx (.exe文件所在的目录)

C#中IP地址转换为数值的方法

2009-08-04

做网络编程经常要把字符串型的ip地址转换为数值,有两种方法,第一种是任何语言都通用的,第二种是C#.net自有的方法:

我们以梦之都的IP为例:72.167.124.214

任何语言都通用的方法转换IP地址

a.b.c.d ==> a*256*256*256+b*256*256+c*256+d ===> 256*(c+256*(b+256*a))+d

示例:

72.167.124.214 ==> 72*256*256*256+167*256*256+124*256+214 ===> 256*(124+256*(167+256*72))+214

.net提供的方法转换IP地址

//字符串转换为数字
System.Net.IPAddress ipaddress = System.Net.IPAddress.Parse("72.167.124.214");
long dreamduip = ipaddress.Address;

//数字转换为字符串
System.Net.IPAddress ipaddress = System.Net.IPAddress.Parse(dreamduip.ToString());
string strdreamduip = ipaddress.ToString();

Failed to execute request because the App-Domain could not be created. Error: 0×80131902的解决方法

2009-02-27

今天打开iis下的asp.net网站发现,“服务器应用程序不可用”,并且查看事件查看器发现了,Failed to execute request because the App-Domain could not be created. Error: 0×80131902的解决方法 的报错,google了一下,找到一个解决的方法:

  • 首先运行 cmd,切换目录到 %SystemRoot%\Microsoft.Net\Framework\ (%SystemRoot% C:\Windows)
  • net stop w3svc - 停止w3svc服务
  • cd v2.0.50727 切换到此目录
  • aspnet_regiis.exe -ua 删除.Net安裝
  • aspnet_regiis.exe -i 重新安装iis的.net
  • net start w3svc 重启w3svc服务

搞定,发现可能是我先装好vs2008后,再安装iis导致的。本不想安装iis但是有个asp.net的项目,晕呀。

编译器错误信息: CS0433: 类型”"同时存在于

2008-11-27
编译器错误信息: CS0433: 类型“***”同时存在于
“c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\root\7657163f\99593400\assembly\***.DLL”和
“c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\root\7657163f\99593400\assembly\***.DLL

这通常是由于引用了不同的dll,导致程序出现问题,应手动删除bin下面的dll与错误提示的dll,并重新编译程序测试。

参考:http://www.cnblogs.com/lmjob/archive/2007/11/02/946665.html

ApplicationHost.CreateApplicationHost FileNotFoundException的解决方法

2008-10-17

编写在IIS之外承载asp.net(aspx)的程序时,可能会遇到ApplicationHost.CreateApplicationHost FileNotFoundException错误。

解决方法:

1,在GAC 全局程序集缓存注册dll。

2,在程序目录下,建立bin文件夹,生成程序的同时把可执行文件copy到bin下。

copy exe.exe bin

参考:

Using ASP.NET Runtime in Desktop Applications

Processing A .aspx File From Console Window, Without Using IIS

在没有 IIS 的条件下运行 ASMX