jquery 动画网站,中企动力 35 做网站,浏览器怎么打开网站服务器设置,推广营销软件1. 综述 大多数程序里都会在Web.config里设置参数#xff0c;并且在部署的时候需要更改。每次都手工更改这些配置很乏味#xff0c;也容易出错。该章节将会告诉你如果通过自动化更新Web.config文件来避免这些问题。 2. Web.config Transformations 与Web Deploy Parameters 有…1. 综述 大多数程序里都会在Web.config里设置参数并且在部署的时候需要更改。每次都手工更改这些配置很乏味也容易出错。该章节将会告诉你如果通过自动化更新Web.config文件来避免这些问题。 2. Web.config Transformations 与Web Deploy Parameters 有2种方式来自动化更新Web.config文件的设置Web.config transformations和Web Deploy parameters。Web.config transformation文件包含部署时需要更新的XML标记 。你可以为不同的build配置声明不同的更新。默认的build配置是Debug和Release你也可以创建自定义的build配置。 Web Deploy parameters可以定义部署时需要更的任何设置只要Web.config里能定义的。定义Web.config文件更新的时候创建Web Deploy parameters十分复杂但是如果你只有在部署的时候才知道这些配置值的话它是非常有用的。例如在一些企业环境里你将程序打包以后发给IT部门的人去安装到生产环境IT的人需要输入字符串连接或者不能让你的密码。 该章节的内容任何东西你都可以事先在Web.config里配置好所以不需要使用Web Deploy parameters的方式。 提醒如果根据本章节所做的操作出现错误信息或一些功能不正常的话请务必check Troubleshooting页面。 3. 创建新的Build Configuration 你有2个需要部署的目标测试环境和生产环境。部署到测试环境的话一般都是部署Release版本而非Debug版本但是有些Web.config的参数可能和生产环境里的不一样。因为Web.config transformations是由build配置来声明的所以你需要创建一个新的test环境使用的build配置。 生产环境使用默认的Release build配置测试环境如果你能用debug的话也可以使用默认的Debug build配置。如果需要在测试环境部署Release版本的程序的话你可以创建一个Test build配置。 打开Visual Studio Build菜单选择Configuration Manager弹出Configuration Manager对话框。 在Active solution configuration框里选择新建New。弹出New Solution Configuration对话框输入Test作为新build配置的名称然后选择从Release复制设置。保存Create new project configurations选中然后点击OK。 关闭Configuration Manager对话框。 还需要一个Web.config transform文件来对应Test build配置。在Solution Explorer里展开Web.config 文件可以看到默认创建的Web.Debug.config和Web.Release.config文件右键Web.config 然后选择Add Config Transforms。 Web.Test.config文件添加成功。 现在你可以输入Web.config transformations到Web.config transformation文件了。 4. 防止Entity Framework Code First删除生产环境数据库 在开发环境Entity Framework Code First通常默认配置成当data model改变的时候自动删除/重建数据库。在你开发站点和频繁改变data model的时候非常方便但是你肯定不想它发生在生产环境。控制Entity Framework 自动初始化数据库的功能的推荐方法是在Web.config 文件里设置appSettings值。 早期的Code First教程建议在Global.asax文件的Application_Start方法里设置代码如果你有这样的代码部署之前删除它。因为不需要改变项目就可以控制Code First行为例如你可以配置一个测试项目来做数据库初始化。 Web.config文件的appSettings 里设置了一个DatabaseInitializerForType。 appSettingsadd keyDatabaseInitializerForType ContosoUniversity.DAL.SchoolContext, ContosoUniversity.DAL valueContosoUniversity.DAL.SchoolInitializer ContosoUniversity.DAL/!-- Other settings --/appSettings 你需要为部署站点的配置修改value的属性值为Disabled如下 appSettingsadd keyDatabaseInitializerForType ContosoUniversity.DAL.SchoolContext, ContosoUniversity.DAL valueDisabled/!-- Other settings --/appSettings 打开Web.Release.config立即添加一个新的appSettings元素如下确保只添加appSettings元素。 configuration xmlns:xdthttp://schemas.microsoft.com/XML-Document-TransformappSettingsadd keyDatabaseInitializerForType ContosoUniversity.DAL.SchoolContext, ContosoUniversity.DAL valueDisabled xdt:TransformSetAttributes xdt:LocatorMatch(key)//appSettings!-- Existing comments and system.web element --/configuration xdt:Transform属性值SetAttributes 的意思是当前transform的目的是更新Web.config文件已经存在的元素。xdt:Locator属性值Match(key)的意思是需要更新的元素的key属性和当前声明的key属性是一样的另外一个value的值才是需要在部署Web.config 文件里修改的值。这段代码将会让Entity Framework Code First初始化器设置为Disabled。 如果测试环境和生产环境都使用一样的配置也就是只能开发环境自动创建数据库因此你需要在Web.Test.config文件添加同样的代码。不需要更新Web.Debug.config文件因为该章节不会创建任何Debug build。 5. 限制错误日志访问只授权给Administrators 如果程序运行的时候又错误程序会显示一个普通的错误信息代替系统黄页使用Elmah NuGet包来处理错误日志记录和报表。 Web.config文件的customErrors 元素声明了错误页地址 customErrors modeRemoteOnly defaultRedirect/GenericErrorPage.aspxerror statusCode404 redirect/GenericErrorPage.aspx//customErrors 要看该错误页面可以临时设置customErrors元素的mode值为On然后从Visual Studio里运行程序。输入非法的URL地址例如Studentsxxx.aspx你可以看到替代page not found 错误页面的自定义错误页GenericErrorPage.aspx页面。 查看错误日志在端口后面输入elmah.axd截图的例子是http://localhost:51130/elmah.axd就可以访问 看完以后不要忘记把customErrors元素的mode值重新设置为RemoteOnly 。 开发环境可以任意访问错误日志页面但生产环境可能是个安全风险对于生产环境你可以通过在Web.Release.config文件里使用一个添transform来限制认证只有administrators才可以访问。 打开Web.Release.config在appSettings元素后面添加下面的代码 location pathelmah.axd xdt:TransformInsertsystem.webauthorizationallow rolesAdministrator/deny users*//authorization/system.web/location xdt:Transform属性值Insert的意思是添加该元素到Web.config的其他同类型节点下面作为兄弟节点。已经有一个location元素来声明Update Credits页面验证规则了。生产环境部署以后你需要测试该验证是否有效。 你不需要限制测试环境的错误日志访问权限所部需要设置Web.Test.config文件。 安全备注任何时候都不应该在生产环境显示和保持错误日志信息黑客可能会利用站点的漏洞还获取这些信息。如果你使用ELMAH确保配置成最小风险。该演示里的ELMAH配置不能被认为是一个推荐配置。它只是一个例子方便我们展示如何控制一个文件夹的权限。 6. 设置环境标示符 常见的常见是不同的环境使用不同的配置例如一个程序调用WCF那不同的环境可能调用的endpoint地址不一样。Contoso University程序也有类似的。设置一个站点标示符有助于用户可以很方便的知道当前你在访问哪个环境的站点。Site.Master 模板文件里会显示附件了标示符Dev或Test的head标题。 生产环境运行的时候标示符将被禁掉。 Contoso University程序页面读取Web.config文件里的appSettings的一个值来决定当前运行的程序是哪个环境 appSettings!-- Entity Framework initializer setting --add keyEnvironment valueDev//appSettings 这个value值在测试环境应该是“Test”生产环境应该是“Prod”。 打开Web.Release.config文件添加如下代码到appSettings元素节点 appSettings!-- Entity Framework initializer transform that you entered earlier --add keyEnvironment valueProd xdt:TransformSetAttributes xdt:LocatorMatch(key)//appSettings Transform和Locator属性和前面为Entity Framework创建的transform类似。 完成以后Web.Release.config的appSettings应该是这个样子 appSettingsadd keyDatabaseInitializerForType ContosoUniversity.DAL.SchoolContext, ContosoUniversity.DAL valueDisabled xdt:TransformSetAttributes xdt:LocatorMatch(key)/add keyEnvironment valueProd xdt:TransformSetAttributes xdt:LocatorMatch(key)//appSettings 接着同样的代码应用到Web.Test.config文件只是设置value值为Test。完成以后Web.Test.config 下的appSettings节点应该像这样 appSettingsadd keyDatabaseInitializerForType ContosoUniversity.DAL.SchoolContext, ContosoUniversity.DAL valueDisabled xdt:TransformSetAttributes xdt:LocatorMatch(key)/add keyEnvironment valueTest xdt:TransformSetAttributes xdt:LocatorMatch(key)//appSettings 7. 禁用Debug模式 对于Release build不需要开启debugging模式。默认情况下Web.release.config transform文件是自动从compilation元素删除debug属性的。因为你创建的Test build 配置是从Release复制的设置所以Web.Test.config也有这个代码 system.webcompilation xdt:TransformRemoveAttributes(debug)//system.web 该Transform属性定义的是从部署以后的Web.config文件将debug属性删除。 8. 设置连接字符串 因为我们有2个版本的数据库一个开发环境一个是测试和生产环境你需要为测试和生产环境设置相对于开发环境不同的连接字符串。打开Web.Test.config和the Web.Release.config文件后在configuration里添加connectionStrings元素如下: connectionStringsadd nameDefaultConnection connectionStringData Source|DataDirectory|aspnet-Prod.sdf providerNameSystem.Data.SqlServerCe.4.0 xdt:TransformSetAttributes xdt:LocatorMatch(name)/add nameSchoolContext connectionStringData Source|DataDirectory|School-Prod.sdf providerNameSystem.Data.SqlServerCe.4.0 xdt:TransformSetAttributes xdt:LocatorMatch(name)//connectionStrings 该代码使用的Match locator和SetAttributes transform属性和上面的环境标示符配置类似。 对于测试和生产环境的配置我们都全部设置完了下一章节你将学会配置项目属性。 9. 更多信息 对于本章节的内容更多进一步的信息请访问ASP.NET Deployment Content Map和ASP.NET Web Application Project Deployment FAQ里的Can I exclude specific files or folders from deployment。转载于:https://www.cnblogs.com/TomXu/archive/2011/11/25/2263089.html