[*.vshost.exe] ---宿主进程

[*.vshost.exe] 也叫宿主进程,是VS2005/2008/2010中的一项功能,能提高调试性能,支持部分信任调试并支持设计时表达式计算。宿主进程文件的文件名中包含 vshost, 并位于项目的输出文件夹中。

托管程序是通过[*.vshost.exe]启动的,而[*.vshost.exe]是一个固定的程序,在每次启动调试过程前,VS会把[*.vshost.exe]拷贝到被调试进程的同一目录里面,然后在后台帮你启动[*.vshost.exe]以便节省调试时间,直到你关闭VS或者关闭当前的VS解决方案(.sln文件),VS才会终止[*.vshost.exe].

[*.vshost.exe]负责创建应用程序域并将调试器和自身关联起来,因为在你调试你的.NET工程的时候,[*.vshost.exe]只启动一次,因此避免了每一次调试.NET可执行文件时准备调试环境的过程,然后[*.vshost.exe]使用AppDomain.ExecuteAssembly函数来执行我们的可执行文件。

宿主进程文件
(.vshost.exe) 由 VS使用,不应通过应用程序直接运行或部署。

提高调试性能

  宿主进程创建一个应用程序域并将调试器与应用程序关联起来。执行这些任务会导致在开始调试和开始运行应用程序之间有很明显的延迟。通过在后台创建应用程序域和关联调试器,并在运行应用程序之间保存应用程序域和调试器状态,宿主进程使性能得到提高。

部分信任调试

  在“项目设计器”的安全页中,可将应用程序指定为部分信任应用程序。调试部分信任应用程序需要对应用程序域进行特殊的初始化。此初始化由宿主进程处理。

调试与宿主进程

  Visual Studio 宿主进程提高了调试器性能,并启用了新的调试器功能,如部分信任调试和设计时表达式计算。如果需要,您可以禁用宿主进程。

用宿主进程和不用宿主进程进行调试的一些差异

1)    部分信任调试和 Click-Once 安全

部分信任调试需要宿主进程。如果禁用宿主进程,部分信任调试将不工作,即使在“项目属性”的“安全”页上启用了部分信任安全。

2)    设计时表达式计算

设计时表达式始终使用宿主进程。如果在“项目属性”中禁用宿主进程,则禁用了类库项目的设计时表达式计算。对于其他项目类型,不禁用设计时表达式计算。相反,Visual Studio 启动实际可执行文件,并将它用于不用宿主进程的设计时计算。这种差异可能产生不同的结果。

3)    AppDomain.CurrentDomain.FriendlyName 差异

AppDomain.CurrentDomain.FriendlyName 依据是否启用宿主进程返回不同的结果。如果启用宿主进程时调用 AppDomain.CurrentDomain.FriendlyName,它将返回 app_name.vhost.exe。如果禁用宿主进程时调用它,它将返回 app_name.exe。

4)    Assembly.GetCallingAssembly().FullName 差异

Assembly.GetCallingAssembly().FullName 依据是否启用宿主进程返回不同的结果。如果启用宿主进程时调用 Assembly.GetCallingAssembly().FullName,它将返回 mscorlib。如果禁用宿主进程时调用 Assembly.GetCallingAssembly().FullName,它将返回该应用程序名。

时间: 2024-08-23 09:17:33

[*.vshost.exe] ---宿主进程的相关文章

Debug目录、Release目录,bin目录、obj目录,vshost.exe.config文件、.exe.config文件分析【C#】

Debug目录.Release目录,bin目录.obj目录,vshost.exe.config文件..exe.config文件分析[C#] 2013-10-06  孤风卓影  摘自 csdn博客  阅 558  转 4 转藏到我的图书馆 微信分享: 今天写程序的时候,需要更改.exe.config文件中的引用的webservice地址,用vs调试的时候,发现会修改vshost.exe.config中的对应项,.exe.config中的对应项是不会修改的,这样会导致在软件重启的情况下,.exe.c

[C#]Hosting Process (vshost.exe)

写在前面 最近在群里,有朋友问起这个vshost.exe进程到底是什么?当时确实不知道是个什么东东,给人的感觉是,经常看到它,就是在启动一个项目的时候,经常看到它,就是没细研究它是啥玩意儿.既然遇到了,就不能放过,就要研究个一二. vshost.exe 通过名字Hosting Process我们可以翻译为:宿主进程. The hosting process is a feature in Visual Studio 2005 that improves debugging performance

Visual Studio 不生成.vshost.exe和.pdb文件的方法【转】

Visual Studio 不生成.vshost.exe和.pdb文件的方法[转] 使用Visual Studio编译工程时,默认设置下,即使选择了「Release」时也会生成扩展名为「.vshost.exe」和「.pdb」的文件. 一.先解释一下各个文件的作用: .pdb文件: 程序数据库文件(Program Database File).默认设置下,Debug的PDB是full,保存着调试和项目状态信息.有断言.堆栈检查等代码,可以对程序的调试配置进行增量链接. 而Release的默认设置对

Visual Studio 不生成.vshost.exe和.pdb文件的方法

使用Visual Studio编译工程时,默认设置下,即使选择了「Release」时也会生成扩展名为「.vshost.exe」和「.pdb」的文件. 一.先解释一下各个文件的作用: .pdb文件: 程序数据库文件(Program Database File).默认设置下,Debug的PDB是full,保存着调试和项目状态信息.有断言.堆栈检查等代码,可以对程序的调试配置进行增量链接. 而Release的默认设置对PDB指定为pdb-only,保存着程序出了什么错误,以及错误在哪行. .vshos

C# IDE VS2005中的Hosting Process (vshost.exe)作用介绍

写在前面 最近在群里,有朋友问起这个vshost.exe进程到底是什么?当时确实不知道是个什么东东,给人的感觉是,经常看到它,就是在启动一个项目的时候,经常看到它,就是没细研究它是啥玩意儿.既然遇到了,就不能放过,就要研究个一二. vshost.exe 通过名字Hosting Process我们可以翻译为:宿主进程. The hosting process is a feature in Visual Studio 2005 that improves debugging performance

app.config .exe.config .vshost.exe.config配置

App.Config 的值可以理解在内存中静态的,也就是说,一般程序运行了,这个值是不会更新的. 其实只需要更新.exe.config文件中的数据库路径即可.只要在更新操作完后需要重启应用程序 即可,这样配置才能生效.在N多资料,发现.vshost.exe进程是vs2005中为了便于跟踪调试 才有的,其实这个进程可以手动禁用而不影响应用程序的执行,.vshost.exe.config文件与此 进程对应的配置文件,与应用程序运行没有关系. 生成exe时App.config文件的内容会自动同步到Te

32位win7系统下配置IIS遇到php-cgi.exe - FastCGI 进程意外退出问题的解决办法

今天重装了一下系统,是32位的WIN7,装完系统后想把IIS装回来,因为有时候需要用到笔记本处理一些事情,结果WEB服务器正常了,但IIS的FASTCGI模块始终不能解析PHP,一直报php-cgi.exe - FastCGI 进程意外退出的错误,于是上网找了一下解决办法,将解决过程写下来,以备忘: 解决的思路很简单,既然是不能解析PHP,那就直接运行一下PHP,看会报什么错,再对症下药,于是,在命令提示符窗口进入php安装的根目录,然后运行php -v的命令,这时窗口弹出计算机丢失msvcr1

"php-cgi.exe - FastCGI 进程意外退出" 解决办法

问题描述: win7下iis中php-cgi.exe - FastCGI 进程意外退出 错误提示: HTTP 错误 500.0 - Internal Server Error D:\phpStudy\phpf\php-cgi.exe - FastCGI 进程意外退出 解决方案1: 服务器windows2008上面配置PHP时. IIS7.0显示正常,但phpinfo.php显示不正常,出现"HTTP 错误 500.0 - Internal Server Error  C:\PHPServer\P

"php-cgi.exe - FastCGI 进程意外退出" 的解决办法

服务器windows2008上面配置PHP时. IIS7.0显示正常,但phpinfo.php显示不正常,出现"HTTP 错误 500.0 - Internal Server Error  C:\PHPServer\PHP\php-cgi.exe - FastCGI 进程意外退出"的提示. 双击PHP目录下的文件php.exe则出现"msvcr110.dll"丢失的提示. 到Microsoft网站下载"Microsoft Visual C++ 2012 R