㈠ 如何:针对 ASP.NET 版本配置 ASP.NET 应用程序
唯一的例外是那些绑定到不兼容的运行库版本或更新的运行库版本的应用程序。(兼容性通常由 .NET Framework 版本号决定。不同的主版本通常是不兼容的,而不同的次要更新和内部版本号是兼容的。)尽管更高版本的 .NET Framework 设计成具有向后兼容性,您仍可能需要相应地配置 ASP.NET 应用程序以使用特定版本的运行库。在管理安装了多个版本的 .NET Framework 的计算机时,查看 ASP.NET 应用程序的脚本映射(有时称为应用程序映射)以确定应用程序所使用的版本通常很有用。可以使用 Internet 信息服务 (IIS) 管理控制台查看 ASP.NET 应用程序的脚本映射。查看ASP.NET 应用程序的脚本映射打开IIS 管理控制台。展开本地计算机节点,展开“网站”,然后展开“默认 Web 服务器”[Default Web Server]。右击应用程序的文件夹,然后单击“属性”。在“目录”选项卡上单击“配置”。出现“应用程序配置”对话框。在“映射”选项卡中,选择ASP.NET 应用程序扩展名,如 .asmx 或 .aspx。 对话框的“可执行文件路径”列列出了到应用程序所使用的 ASP.NET ISAPI 扩展的路径。默认情况下,ASP.NET ISAPI 扩展安装在以下位置:%system root%\Microsoft.NET\Framework\versionNumber路径中显示的版本号说明了应用程序所使用的 ASP.NET ISAPI 扩展的版本号。反过来,ASP.NET ISAPI 扩展的版本确定了应用程序所使用的运行库版本。 配置应用程序以使用脚本映射为使重新配置 ASP.NET 应用程序的脚本映射更容易,每个 .NET Framework 安装都提供了其自己版本的 ASP.NET IIS 注册工具 (Aspnet_regiis.exe)。在 Web 服务器计算机上具有管理员特权的用户可以使用该工具将 ASP.NET 应用程序重新映射到匹配该工具的 ASP.NET ISAPI 扩展版本。注意由于Aspnet_regiis.exe 工具与特定版本的 .NET Framework 相关联,因此您必须使用适当版本的 Aspnet_regiis.exe 为 ASP.NET 应用程序重新配置脚本映射。Aspnet_regiis.exe 工具将 ASP.NET 应用程序的脚本映射重新配置为匹配该工具的 ASP.NET ISAPI 扩展版本。 此工具也可用来显示所有已安装的 ASP.NET 版本的状态、注册关联的 ASP.NET 版本、创建客户端脚本目录以及执行其他配置操作。使用Aspnet_regiis.exe 更新某一 ASP.NET 应用程序的脚本映射打开Windows 命令窗口。定位到包含要使用的 Aspnet_regiis.exe 工具版本的目录。记住每一版本的 .NET Framework 都有自己的版本。文件通常位于以下目录: %system root%\Microsoft.NET\Framework\versionNumber使用-s 或-sn 选项以及应用程序的路径运行 Aspnet_regiis.exe 工具。 下面的示例演示一个命令,该命令更新一个名为 SampleApp1 的应用程序的脚本映射: Aspnet_regiis.exe -s W3SVC/1/ROOT/SampleApp1 配置应用程序池IIS 5.0 版使用 ASP.NET 进程模型 (Aspnet_wp.exe)。在 ASP.NET 进程模型下,每一个单独的应用程序版本在运行时自动运行在独立的进程中。定位到同一运行库版本的所有应用程序共享同一进程(或网络园模式中的多个进程)。然而,IIS 6.0 使用 IIS 6.0 进程模型 (w3wp.exe),并使用一项隔离功能,称为应用程序池。只要应用程序共享同一池标识,应用程序池就允许它们在一个或多个进程中同时运行。如果应用程序所分配的应用程序池不同,它们就永远不能在同一进程中运行。警告IIS 6.0 仅在处于 IIS 5.0 隔离模式时支持 ASP.NET 版本 1.0。如果在使用 IIS 6.0 的计算机上安装了多个版本的 .NET Framework,您可能会在“应用程序事件”日志中看到下面的错误信息:“不能在同一 IIS 进程中运行不同版本的 ASP.NET。请使用 IIS 管理工具重新配置服务器,以便在单独的进程中运行应用程序。”如果有多个版本的 ASP.NET 配置为在同一进程中进行,就会发生该错误,因为不同版本的 .NET Framework 和运行库不能在同一进程中并行运行。因此,使用某一特定版本的运行库的 ASP.NET 应用程序不能与使用其他版本的应用程序共享进程。如果两个或多个应用程序被映射到不同版本的 ASP.NET,但共享同一应用程序池,通常就会发生这一错误。注意每个应用程序的进程隔离都是手动配置的。在IIS 6.0 中禁用 IIS 5.0 隔离模式打开IIS 管理控制台。右击“网站”文件夹,然后单击“属性”。在“服务”选项卡上,清除“以 IIS 5.0 隔离模式运行 WWW 服务”[Run WWW service in IIS 5.0 isolation mode]复选框。 在IIS 6.0 中向某一 ASP.NET 应用程序分配池标识打开IIS 管理控制台。展开本地计算机节点,展开“网站”,然后展开“默认 Web 服务器”[Default Web Server]。右击应用程序的文件夹,然后单击“属性”。在“目录”选项卡上,从“应用程序池”列表选择所需的池标识。在IIS 6.0 中创建池标识打开IIS 管理控制台。展开本地计算机节点。右击“应用程序池”文件夹,指向“新建”,再单击“应用程序池”。 出现“添加新应用程序池”对话框。在“应用程序池”文本框中输入新的池标识,再单击“确定”。
㈡ asp.net网站服务器怎么配置(权限)
你可以在你的网站所在的磁盘(假设是D盘)加入以下几个账号:Administrators组、ASPNET、Internet来宾帐号、启动IIS进程帐号。
这样设置:Administrators拥有所有权限;ASPNET除了拥有“完全控制”的权限以外的所有权限;Internet来宾帐号和启动IIS进程帐号只拥有读取、运行、列出目录三个权限。如果你的网站页面有文件的读取和写入的操作,建议你将Internet来宾帐号又加上了修改和写入权限。
希望我的回答对你有用...
㈢ 如何在iis中执行aspx文件啊
一、先注册asp.net组件: (asp.NET 组件即:.Net Framework )
开始->运行->cmd->执行命令:
C:\windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i (你的.net组件位置)
或者
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis -i
[ 上面这个地址是.NetFramework 自动安装默认的位置~ ]
二、接下来还要在WEB服务扩展启用ASP.NET服务:
IIS->本地计算机->WEB服务扩展->ASP.NET v2.0.5072:允许
[ 如果上面这个地址你没有找到,可能是你在安装IIS时没有装服务扩展!去Win组件里IIS看看]
三、在IIS中创建虚拟目录
IIS->本地计算机->网站->默认网站,右键->新建“虚拟目录”->取个名字->浏览你的ASPX文件的目录,确定
四、点击新建的虚拟目录->在右侧,右击:aspx文件->浏览
㈣ 以下哪些是asp.net支持的文件夹
1. Bin文件夹
Bin文件夹包含应用程序所需的,用于控件、组件或者需要引用的任何其他代码的可部署程序集。该目录中存在的任何.dll文件将自动地链接到应用程序。如果在该文件夹中留有不用的或过期的文件,则可能出现“二义性引用(ambiguous reference)”异常的风险。换句话说,如果两个不同的程序集定义相同的类(相同的命名空间和名称),则ASP.NET运行库不能决定应该使用哪一个程序集,从而抛出一个异常。在开发时,当我们重新命名一个项目或一个程序集的名称时,这是常见的错误。为了避免这种错误,一定不要在该文件夹中保留任何不必要的程序集,或者至少要从配置文件的<assemblies>节中删除如下代码行:
<add assembly="*" />
2. App_Browser文件夹
该可选的文件夹包含.browser文件。.browser文件描述浏览器(不管是移动设备浏览器,还是台式机浏览器)的特 征和功能。ASP.NET在安装路径下的Config/Browser文件夹中安装了大量.browser文件,这些文件供所有应用程序共享。我们只是把 当前应用程序特有的浏览器文件放在App_Browser文件夹下。.browser文件的内容即时动态地进行编译,以便向ASP.NET运行库提供最新 的浏览器信息。
让我们简单谈谈拥有一个自定义的.browser文件可能有帮助的场景。设想应用程序使用了一个在某个浏览器下不能有效呈现的控件。在指定的浏览器中显示宿主页面时,可以编写一个.browser文件,迫使ASP.NET使用一个不同的适配器来生成该控件。
<browsers>
<browser id="browserID">
<controlAdapters>
<adapter controlType="Samples.CustomControl"
adapterType="Samples.Adapters.CustomControlAdapter" />
</controlAdapters>
</browser>
</browsers>
假设browserID与ASP.NET识别的标准浏览器之一相匹配,则上文所示的.browser文件指示在指定的浏览器下使用CustomControlAdapter呈现CustomControl。
3. App_Code文件夹
App_Code文件夹正好在Web应用程序根目录下,其存储所有应当作为应用程序的一部分动态编译的类文件。这些类文件自 动链接到应用程序,而不需要在页面中添加任何显式指令或声明来创建依赖性。App_Code文件夹中放置的类文件可以包含任何可识别的ASP.NET组件 ——自定义控件、辅助类、build提供程序、业务类、自定义提供程序、HTTP处理程序等。
注意 在开发时,对App_Code文件夹的更改会导致整个应用程序重新编译。对于大型项目,这可能不受欢迎,而且很耗时。为此,鼓励大家将代码进行模块化处理 到不同的类库中,按逻辑上相关的类集合进行组织。应用程序专用的辅助类大多应当放置在App_Code文件夹中。
App_Code文件夹中存放的所有类文件应当使用相同的语言。如果类文件使用两种或多种语言编写,则必须创建特定语言的子目录,以包含用每种语言编写的类。一旦根据语言组织这些类文件,就要在web.config文件中为每个子目录添加一个设置:
<compilation>
<codeSubDirectories>
<add directoryName="VBFolder" />
</codeSubDirectories>
</compilation>
重要的是,特定语言的子目录应在web.config文件中注册,否则,不管它们属于哪个文件夹,App_Code文件夹下 的所有文件将被编译成一个单独的程序集。上述配置脚本描述了这么一种情况,即所有的C#文件都放在App_Code文件夹的根目录下,而把几个 Visual Basic .NET类文件移入VBFolder目录中。如果<codeSubDirectories>节中提到的目录不存在,则会收到一个编译错误提 示。
App_Code根文件夹中的文件被编译成App_Code_xxx.dll程序集,其中xxx是随机生成的字符序列。一个 给定子目录中的文件将被编译成一个名为App_SubCode_xxx_yyy.dll的动态创建的程序集,其中xxx指示子目录的名称,而yyy是一个 随机字符序列。只有在应用程序根目录中的web.config文件中进行了设置,<codeSubDirectories>节才有效。
在App_Code目录或任何其他子目录中放置一个assemblyinfo.cs文件,可以创建一个强命名的程序集。显然,如果该文件夹包含Visual Basic .NET文件,那么将使用assemblyinfo.vb文件。程序集配置文件可以引用一个.snk文件来保存强名称的密钥。
注意 给一个程序集设置一个强名称,首先必须获得一个公开/私有密钥对。通过使用强名称(Strong Name)工具(sn.exe),可以获得这样一个密钥对。强名称工具是我们可以在.NET Framework的安装路径中发现的SDK binary之一。密钥对文件通常有一个.snk扩展名。可以将该文件保存到一个应用程序文件夹中,并在assemblyinfo.cs文件中引用它,如下所示:
[assembly: AssemblyKeyFileAttribute(@"yourKeyPair.snk")]
注意,Visual Basic .NET是在包含Visual Studio Solution的目录中寻找密钥文件,而C#编译器则在包含该binary的目录中寻找密钥文件。据此可知,用此属性调整我们使用的路径,或者把密钥文件放在合适的文件夹中。
在随后发生的任何重新生成中,程序集的名称将发生变化。同时,老的AppDomain请求一结束,就删除老的程序集。
App_Code文件夹并非只能包含类文件。特别是,它可以包含并能自动地处理代表数据架构的XSD文件。把一个XSD文件 添加到该文件夹中时,编译器将把它解析成一个有类型的DataSet类,并将它添加到应用程序作用域中。在ASP.NET 1.x中,这一工作由Visual Studio .NET向导,使用一个命令行实用程序(xsd.exe)完成的。
注意 使用web.config文件注册一个组件(例如,一个自定义的服务器控件或一个自定义的HTTP处理程序)时,通常要求指定包含该代码的程序集名称。如 果该组件定义在App_Code文件夹中,则应该用什么名称来指示程序集?在这种情况下,只是忽略程序集信息,并规定完整的类名即可。如果没有规定任何程 序集,则ASP.NET运行库将试图从任何已装载的程序集中装入该类,包括为App_Code文件夹动态创建的程序集。
4. App_Data文件夹
App_Data文件夹应该包含应用程序的本地数据存储。它通常以文件(诸如Microsoft Access或Microsoft SQL Server Express数据库、XML文件、文本文件以及应用程序支持的任何其他文件)形式包含数据存储。该文件夹内容不由ASP.NET处理。该文件夹是ASP.NET提供程序存储自身数据的默认位置。
注意 默认ASP.NET帐户被授予对文件夹的完全访问权限。如果碰巧要改变ASP.NET帐户,一定要确保新帐户被授予对该文件夹的读/写访问权。
5. App_GlobalResources文件夹
正如其他应用程序一样,ASP.NET应用程序也可以使用资源,而且通常应该使用资源。资源是隔离应用程序用户界面的可局部 化部分的一种有效方法。一般而言,资源是与程序相关的不可执行的文本。典型的资源有图像、图标、文本和附属文件,但是任何可序列化的对象也可以被看作资 源。应用程序资源存储在应用程序的外部,这样就能在不影响和重新编译应用程序本身的情况下重新编译和替换它们。
ASP.NET应用程序需要有一个主要程序集来保存应用程序默认的或中性的资源。此外,还要部署许多附属程序集,它们中各自 包含我们需要支持的某种文化的本地化资源。在ASP.NET 1.x中,编译一个程序集内的资源有点麻烦。需要手动地将基于XML的资源文件(那些带.res扩展名的资源)编译成.resources二进制文件。这 些文件既可以嵌入到一个.NET可执行文件中,也可以编译成附属程序集。使用资源文件生成器实用程序resgen.exe,将文本和基于XML的资源文件 转变为.resource文件。资源文件名称遵循baseName.cultureName.resource命名约定,其中baseName通常是应用 程序的名称:
resgen.exe ProAspNet20.resx ProAspNet20.it.resources
创建.resource文件以后,应当把它嵌入到一个程序集中,甚至可以作为一个资源容器来使用。要把一个资源文件嵌入到一个附属程序集中,可以使用程序集连接器工具(al.exe)。在命令行上,指出程序集所使用的文化(如下面示例中的it,它代表意大利)和名称。
al /out:ProAspNet20.resources.dll /c:it /embed:ProAspNet20.it.resources
在编译附属程序集之后,它们将有相同的名称。将它们部署到不同的子目录中,分别按文化命名。
幸运的是,对于ASP.NET 2.0,附属程序集的时代已经一去不复返了。更准确地说,附属程序集仍然存在,但是由于App_GlobalResources保留文件夹,对开发人员来说它们已经成为过去的事情。
该文件夹中的任何定位的.resx文件自动地被编译成附属程序 集。.resx文件的名称包含文化信息,以帮助ASP.NET运行库环境的程序集生成。如下文件,resources.resx, resources.it.resx, resources.fr.resx,生成中性程序集以及适合于意大利(Italian)和法国(French)文化的附属程序集。如果没有要求特定文 化,则中性程序集是默认的文化资源。
㈤ mac系统怎么运行ASP文件
运行ASP.NET程序的带旦三要素:
1) CLR(.NET运行时)
2) KRE(ASP.NET运行时)
3) Web服务器
所以在Mac OS X上运行ASP.NET程序,就需要对应这三要素的东西:
1) CLR - Mono(目前只有Mono可以用,以后可以用Core CLRE)
2) KRE - KRE-Mono(基于Mono的KRE)
3)Web服务器 - Kestrel
接着,用下面的4个命令将这三样东西安装上即可:
brew tap aspnet/k
brew install kvm
source kvm.sh
kvm upgrade
接下来,照理只要将Web服务器开起来就能运行了。
但是,大多数的程序斗行族都有自己的空弊包包,所以要先把包包给装上:
kpm restore
之后,开启Web服务器完事:
k kestrel
㈥ 用aspnet
在 模型中 vs 已经完全脱离了编译而成为了一个彻底的ide 算是一个不小的改动 其中更是取消了有关Web Application的概念 使得习惯了vs 的人刚开始的时候会有一些摸不著头脑 下面简单说一下我在使用过程中自己总结的 算是一点经验
新建web工程并且位置是文件系统的时候 vs 只是帮你建好了一个sln文件 这个东西只是指引m *** uild 如何进行编译的 过程是 ide 调用 m *** uild m *** uild解析sln文件 m *** uild调用aspnet_piler exe进行网站的编译 所以aspnet_piler exe只是负责进行网站的编译的
预编译的概念在framework 里面就存在了 vs 中的预编译指的是将页面对应的cs/vb文件与resx文件编译后统一集成到一个dll中放到bin目录下 将aspx文件直接拷贝过去 这样做会留下隐患 因为aspx文件就直接暴露在最后的发行包中 如果完全是codeb behind模型还好 只能改改界面 如果采用了页面上的来生成页面 源代码就暴露了 针对这些问题 vs 采用了一种新的模式
请参看ASP NET 编译工具 (Aspnet_piler exe) 这篇文章了解对各种文件的处理方式
IDE发布
vs 中选择 生成 〉发布网站 在对话框中的操作将映射到aspnet_piler exe的参数中 可更新的发布对应 u 其他选项类似 请参考上面的文章了解
注意 发布时将忽略nfig中的debug?问骋簧晌薜魇孕畔⒌奈募?
手工编译
简单说来 如果是无更新发布模式编译 appcode下面的class编译成dll放在bin下 页面内容清空位置不变作占位用 同时页面被编译成一个随机名称的dll 增加一个同piled文件到bin目录下 内容大概如下
<?xml version= encoding= utf ?>
<preserve resultType= virtualPath= /Forum/AdminList aspx hash= c filehash= f d c flags= assembly= App_Web_hmrycg w type= ASP forum_adminlist_aspx >
<filedeps>
<filedep name= /Controls/footer ascx />
<filedep name= /Controls/header ascx />
<filedep name= /Forum/AdminList aspx />
<filedep name= /Forum/AdminList aspx cs />
<filedep name= /Forum/menu ascx />
<filedep name= /Forum/menu ascx cs />
</filedeps>
</preserve>
里面只是列出了页面上的customcontrol 这里已经完成了和masterfile的映射 这样最大限度的保护了页面的敏感信息 发布过的网站中只能看见一堆文件名了 可更新的发布模式与vs 类似 页面就直接拷贝过来不予编译了
讲了一堆原理 下面说一下aspnet_piler exe的调用方法 这是我使用的例子
我的开发目录是这样的
Project/
library/
devroot/
pubroot/
proj sln
使用的命令如下
aspnet_piler v / p devroot f pubroot
分析
v / 指明了iis的虚拟目录
p devroot 表示代码实际位置
pubroot 指明了要发布的位置
f 表示强制改写目标位置
lishixin/Article/program/net/201311/13677
㈦ 利用 .NET Framework 命令行工具
Visual Studio NET 是开发 NET 应用程序的最流行的方法 NET 框架提供了非常多的命令工具 此外 NET Framework SDK 还提供了更多的命令行工具 事实上 像Visual Studio 和SharpDevelop 之类的 IDE 通常也都提供这些工具 下面让我们详细看一下随 NET Framework 一起安装的这些工具 以及如何在项目中使用它们 (注意 在这篇文章中我使用的是 NET Framework 版本 ) 使用 NET Framework NET Framework 命令行程序的默认安装目录是 C:(base Windows directory)Microsoft NETFramework(framework version)在我的计算机上 由于安装的操作系统是 Windows 所以 NET Framework 版本安装在 winnt 目录下 所以其路径是 C:winntMicrosoft NETFrameworkv 这个目录包含无数的 dll 配郑简置文件和可执行文件 等等 在这篇文章中 我将把重点放在可执行文件上 下面是这些程序的一个纲要 Al exe 程序集链接器(Assembly Linker) 该工具从一个或多个模块或者资源文件生成一个带有一个程序集清单的文件 模块是一个没有程序集清单的微软中间语言文件(MSIL) 所有的 Visual Studio 编译器都生成程序集 然而 如果你有一个或多个模块(没有清单的元数据) 你可以利用 Al exe 工具使用一个独立文件中的清单创建一个程序集 Aspnet_regiis exe 这个工具允许你在 IIS 上安装 ASP NET 此岁哪外 它还可以简化同时运行的多个 ASP NET 版本的使用 它允许你为 ASP NET 应用程序更新脚本映射以指向与该工具关联的ASP NET ISAPI 版本 这个工具还可以用来显示所有安装的ASP NET 版本的状态 注册 ASP NET 版本以及工具 创建客户端脚本目录 完成其它配置操作 Aspnet_state exe 这个工具允许会话状态信息存储在一台计算机上 它以一个服务运行 如果会话状态信息存储在一台远程计算机上 该工具也可以安装到那台远程计算机上 Caspol exe 代码访问安全策略(Code Access Security Policy)工具 该工具能够让用户和管理员在机器策略级 用户策略级和企业策略级修改安全策略 你可以喊雀裤使用Caspol exe 编写一个批处理脚本来配置安全策略 ConfigWizards exe 这个工具启动 NET 向导窗口(Windows Control Panel | Administrative Tools | Microsoft NET Framework Wizards ) 它提供对以下三个工具的访问 Adjust NET Security Trust An Assembly 和Fix An Application csc exe Visual C# 编译器 /debug 开关进入调试模式 cvtres exe 资源对象转换器(资源转换成对象) 这个工具通常用来将一个二进制资源文件转成一个对象文件 本地资源通常以 rc 文件开始 然后被 rc exe 编译成一个 res 文件 然后再由 cvtres exe 工具转成一个 obj 文件 最后像其它 obj 文件一样被链接到你的本地应用程序中 dw exe 这个工具给出在使用 NET Framework 时你想看到的错误消息 错误消息询问你是否想发送一个错误报告给微软 (很多用户控告这个小程序是微软的间谍软件 )Gacutil exe 全局程序集缓存(Global Assembly Cache)工具 该工具用于管理程序集缓存 它可以用来查看全局缓存的内容 添加或删除程序集 要想使用该工具列出全局程序集缓存(GAC)的所有程序集 可以使用/l 开关 (/i 开关安装程序集 /u 开关删除程序集 )IEExec exe 这个工具简化使用 URL 启动的应用程序的测试 包括无触点开发 Windows Form 之类的应用程序 工具 IEExec exe 可以代替 IDE 调试这些应用程序 它只接受 URL 参数(例如 IEExec exe ) 它不允许指定区域设置和站点设置 如果你试图指定区域设置和站点设置 就会出现错误 Ila *** exe MSIL汇编程序(Assembler) 该工具从 MSIL 程序集生成一个可移植的可执行文件(PE) 你可以运行生成的可执行文件以确定 MSIL 是否生成了你要的东西 Installutil exe 安装程序(Installer)工具 该工具允许你在一个指定的程序集中执行安装程序组件来安装和卸载服务器资源 这个工具与System Configuration Install 命名空间中的类联合工作 例如 在安装一个 Windows 服务时这个工具会被用到 jsc exe 一个 _JSciprt NET 编译器 /debug 开关进入调试模式 Migpol ex 迁移策略(Migration Policy)工具 该工具提供在两个可兼容的 NET Framework 版本之间迁移策略的能力 Ngen exe 原生图像生成器(Native Image Generator) 该工具从一个托管程序集创建一个原生图像 并将其安装到位于本地计算机的原生图像缓存上 原生图像缓存是 GAC 的保留区域 一旦你为一个程序集创建了一个原生图像 之后程序集每次运行时运行库(runtime)就会自动使用那个原生图像 Rega *** exe 程序集注册(Assembly Registration)工具 该工具读取一个程序集中的元数据 将必要的条目添加到注册表中 这样就允许 客户端透明地创建 NET Framework 类 在 NET Framework 类被注册之后 任何 客户端就可以使用它 就好像它是一个 类一样 NET Framework 类只会被注册一次 就是在程序集被安装时注册 在程序集中的 NET Framework 类被注册之前 它们的实例不能从 创建 Regsvcs exe 这个服务安装工具可以用来装载和注册程序集 注册和安装类型库 或者配置添加到一个类的服务 Regsvcs exe 需要一个由assemblyFile dll 指定的源程序集文件 这个程序集必须使用强名签名 NET Framework SDK 中提供了强名工具(Sn exe) vbc exe Visual Basic NET 编译器 /debug 开关进入调试模式 vbj exe Visual J# NET 编译器 /debug 开关进入调试模式 这些工具能够进行全部的 NET 开发 多数这些工具都支持命令行开关(也就是命令行后接一个斜线) 这些开关允许你指定设置选择或者使用工具的其它方面(像编译器的 /debug 选项) 你可以在命令后面输入 /? 或者 /help 获得工具命令行开关选项的完整列表 这样就提供给你使用工具的完整的语法信息 我通常喜欢使用友好的 Visual Studio NET 环境 但是在造访一位客户之后 我现在开始欣赏命令行选项了 我到了他们那里安装了更改了的代码 但是我还必须现在场做一些额外的更改 这些更改就需要重新编译代码 但是我的机器没有安装Visual Studio NET 幸运的是 我能够使用命令行工具完成这些工作 选择界面 很多开发人员喜欢 Visual Studio NET 和其它开发工具的图形环境 但是另外一个派别的开发人员则非常喜欢由命令行环境提供的控制权 让人感到欣慰的是 微软提供了这两种开发应用程序的方法 具体选用哪种方法就看你的喜好了 lishixin/Article/program/net/201311/13081
㈧ ASP.NET创建文件并写入内容
在ASP NET中 文件处理的整个过程都是围绕着System IO 这个名称空间展开的 这个名称空间中具有执行文件读 写所需要的类 本文从最基本的操作开始 解释在ASP NET中文件处理的概念 包括如从一个文件中读取内容 如何向一个文件中写入内容和如何删除一个文件 前面已经提到 要想在ASP NET 页面中进行文件处理 必须要有 System IO 名称空间 所以 第一步就是引入这个名称空间 <%@ Import Namespace= System IO %>下一步 就是创建一个文本文件 并将这个文本文件分配给一个流书写对象 这样就可以向文本文件中写入内容了 用以下一段代码来完成这个任务 writefile aspx<%@ Import Namespace= System IO %><%Response write( Writing the content into Text File in ASP NET<BR> ) 声明流书写对象Dim strwriterobj As StreamWriter 创建文本文件 分配textfile对象strwriterobj= File CreateText( c:aspnet txt ) 写入内容strwriterobj WriteLine( Wele to wonderfull world of ASP NET Programming ) 完成樱悔操作 关闭流对象strwriterobj CloseResponse write( Done with the creation of text file and writing content into it )%>这样就完成了!现在让我们继续进行下一个任务 从刚才创建的文本文件中读取内容 从文件中读取内容从文件中读取内容与向文件中写入内容大致相同 只是要注意一下下面的两件事 文件读取使用StreamReader类 当使用了Readline方法时 将要被读取的文本文件的结尾处会用一个空字符串( )来标记 现在开始编写代码从前面创建的aspnet txt 文件中读取内容 readfile aspx<%@ Import Namespace= System IO %><%Response write( Reading the content from the text file ASPNET TXT<br> ) 创建流读取对象Dim streamreaderobj As StreamReader 声明变量 以存放从文件中读取的内容Dim filecont As String 打开文本文件 分配给流读乱判取对象streamreaderobj = File OpenText( c:aspnet txt ) 逐行读取文件内容Dofilecont = streamreaderobj ReadLine()Response Write( filecont & <br> )Loop Until filecont = 完成读取操作后 关闭流读取对象streamreaderobj CloseResponse write( <br>Done with reading the content from the file aspnet txt )%>删除文件在ASP NET中删除文件也非常简单和直观 System IO名称空间中的 File (文件)类有一个Delete方法用来删除文件 它把文件名作为一个自变量来传递 以下代码就演示了在ASP NET中进行文件哗颂改删除的步骤 Filedelete aspx<%@ Import Namespace= System IO %><%File Delete( c:aspnet txt )Response write( The File aspnet is deleted successfully !!! )%> lishixin/Article/program/ASP/201311/21860
㈨ 管家婆v3如何设置配置
管家婆v3设置配置方法
V3配置步骤
首先请确认正确安装了IIS, asp.net 2.0
1、找到微软网络框架架下aspnet_isapi . dll的路径(如Win2003默认安装路径为C:微软的windows。asp.net Framework v2.0.50727 aspnet_isapi.dll)
2、添加ajax扩展:在虚拟目录,属性→主目录一配置一应用程序映射选项卡中点添加,在可执行文件中录入aspnet_isapi . dll路径,在扩展名中录入“. ajax”。
3,添加gspx扩展:在虚拟目录,属性→主目录→配置→应用程序映射选项卡中点添加,在可执行文件中录入aspnet_isapi . dll路径,在扩展名中录入“.gspx”。
4、添加违约。gspx:在虚拟目录,属性→文档选项卡中点添加,在默认文档名中录入“默认。
㈩ ASP.NET 2.0运行时简要分析
概述: 本文基于ASP NET 的源代码 对ASP NET 运行时进行了简春迅蔽要的分析 希望能帮助你理解ASP NET 中请求处理过程及页面编译模型关键字 ASP NET 运行时 原理 请求处理 页面编译 ASP NET HTTP Runtime
主要类 System Web HttpRuntime System Web HttpApplicationFactory System Web HttpApplication System Web Compilation BuildManager System Web Compilation ApplicationBuildProvider System Web Compilation BuildProvidersCompiler System Web UI PageHandlerFactory
请求处理简要流程图:
阅读建议 用Reflector工具边查看ASP NET 的源代码边阅读 分析 当我们通过浏览器向ASP NET 网站的一个页面发起请求时 在服务器端首先是IIS收到请求 IIS一看是页面 心里很开心 因为这个请求不用它处理 交给ASP NET ISAPI就行了 ASP NET ISAPI的工作也比较轻松 他的主要任务就是安排aspnet_wp exe处理请求 并监视aspnet_wp exe进程的执行情况 如果aspnet_wp exe进程太累了 不能出色地完成任务 ASP NET ISAPI就要让他下岗 换一个新的aspnet_wp exe来处理工作 aspnet_wp exe的主要任务是将请求交给一系列称为的 HTTP 管道的托管对象 如果把ASP NET ISAPI比做销售经理 那aspnet_wp exe就是生产经理 而HTTP 管道就是生产的流水线 负责流水线的小组就是HttpRuntime 生产经理aspnet_wp exe会将订单(HTTP请求)交给HttpRuntime小组的工作人员ProcessRequest(HttpWorkerRequest wr) HttpRuntime根据内部的分工 最终由ProcessRequestInternal(HttpWorkerRequest wr)在流水线上进行生产 所以ProcessRequestInternal(HttpWorkerRequest wr)是我们扒州分析的重点 ProcessRequestInternal的主要工作是 创建HttpContext实例 对第一次请求进行初始化(EnsureFirstRequestInit) a)在EnsureFirstRequestInit中通过调用System Web HttpRuntime FirstRequestInit进行一些初始化工作 比如 将Web Config配置读到到RuntimeConfig中 从bin目录中装载所有dll文件 创建HttpWriter实例 通过调用HttpApplicationFactory GetApplicationInstance创建HttpApplication实例 在HttpApplicationFactory GetApplicationInstance中有三个关键方法 HttpApplicationFactory _theApplicationFactory EnsureInited();HttpApplicationFactory _theApplicationFactory EnsureAppStartCalled(context);HttpApplicationFactory _theApplicationFactory GetNormalApplicationInstance(context);
下面我们对这三个方法逐个进行分析 )HttpApplicationFactory _theApplicationFactory EnsureInited(); 该方法昌兄检查HttpApplicationFactory是否被初始化 如果没有 就通过HttpApplicationFactory Init()进行初始化 在Init()中 先获取global asax文件的完整路径 然后调用CompileApplication()对global asax进行编译 那编译是如何进行的呢? 编译的工作由BuildManager完成的 BuildManager先得到GlobalAsaxType(也就是HttpApplication) 然后调用BuildManager GetGlobalAsaxBuildResult()=》()=》EnsureTopLevelFilesCompiled()进行编译 在EnsureTopLevelFilesCompiled中 先进行CompilationStage TopLevelFiles编译 对下面三个目录中的文件进行编译 a CompileResourcesDirectory();编译App_GlobalResources目录 b CompileWebRefDirectory();编译App_WebReferences目录 c CompileCodeDirectories();编译App_Code目录
接着进行CompilationStage GlobalAsax 编译 对global asax进行编译 方法调用情况 CompileGlobalAsax()=》ApplicationBuildProvider GetGlobalAsaxBuildResult(BuildManager IsPrepiledApp) 在GetGlobalAsaxBuildResult中具体的编译是由ApplicationBuildProvider与BuildProvidersCompiler共同完成的 BuildProvidersCompiler PerformBuild();进行编译工作 ApplicationBuildProvider GetBuildResult得到编译的结果 编译成功后 会在C:WINDOWSMicrosoft NETFrameworkv Temporary ASP NET Files相应的目录中生成类似App_global asax mlgx n v dll的dll文件 编译生成的类名为ASP global_asax 继承自HttpApplication 注 如果Web目录中没有Global asax文件 就不会编译生成App_global asax mlgx n v dll这样的文件
)_theapplicationfactory ensureappstartcalled(context); 创建特定的HttpApplication实例 触发ApplicationOnStart事件 执行ASP global_asax中的Application_Start(object sender EventArgs e)方法 这里创建的HttpApplication实例在处理完事件后 就被回收
)_theapplicationfactory getnormalapplicationinstance(context); 该方法创建HttpApplication实例并进行初始化(调用System Web HttpApplication InitInternal()方法) 创建HttpApplication实例是根据实际的_theApplicationType进行创建 如果Web目录中没有global asa文件 也就是说没有动态编译生成ASP global_asax类型 那就直接实例化HttpApplication 如果创建了ASP global_asax类型 那就对ASP global_asa进行实例化 创建HttpApplication实例之后就是调用实例的InitInternal方法 InitInternal方法也是我们重点分析的方法 该方法的主要功能如下 InitMoles() 根据Web Config的设置 创建相应的HttpMoles 根据发生的事件 调用HttpApplication实例中相应的事件处理函数 创建很多实现IExecutionStep接口的类的实例并添加到当前HttpApplication实例的_execSteps中 等待回调时执行 从这里我们可以看到HttpApplication是以异步的方式处理请求 对请求的很多处理工作都放入了_execStep等待回调时执行 _execStep中主要的处理工作如下 )对请求的路径进行安全检查 禁止非法路径访问(ValidatePathExecutionStep) )如果设置了UrlMappings 进行RewritePath(UrlMappingsExecutionStep) )执行事件处理函数 比如 BeginRequest AuthenticateRequest等等 )获取处理当前请求的HttpHandler ASP NET页面的动态编译也是在这里进行的 (MapHandlerExecutionStep)该处理是通过调用System Web HttpApplication MapHttpHandler方法 在MapHttpHandler中 首先根据访问的地址从nfig获取相应的实现IHttpHandlerFactory的类型 对于页面 默认是PageHanlderFactory 然后创建PageHanlderFactory实例 调用GetHandlerHelper 在GetHandlerHelper中调用BuildManager CreateInstanceFromVirtualPath编译并创建当前请求的ASP NET页面的实例(如果已经编译过 直接从缓存中加载) CreateInstanceFromVirtualPath经过几次方法调用 将编译任务给了BuildManager CompileWebFile() CompileWebFile从nfig得到相应的BuildProvider 对于 aspx文件 相应的BuildProvider是PageBuildProvider PageBuildProvider是如何进行页面编译的 这里就不再就进一步分析了 如果你感兴趣 可以进一步研究ASP NET 的源代码 )调用相应HttpHandler的 ProcessRequest方法处理请求(如果是异步方式 调用BeginProcessReques) (CallHandlerExecutionStep) )将响应内容写入Filter (CallFilterExecutionStep)
调用HttpApplication实例的BeginProcessRequest异步处理请求 上面所讲的_execSteps中所发生的许多事情 都是在HttpRuntime调用HttpApplication BeginProcessRequest之后 在BeginProcessRequest中调用ResumeSteps后执行的
lishixin/Article/program/net/201311/12956