C# 如何在我的Web.config中消除单元测试的残余?
在将当前项目上载到登台服务器时,我注意到Asp.net MVC框架的Web.config文件包含对调用C# 如何在我的Web.config中消除单元测试的残余?,c#,asp.net,asp.net-mvc,visual-studio,web-config,C#,Asp.net,Asp.net Mvc,Visual Studio,Web Config,在将当前项目上载到登台服务器时,我注意到Asp.net MVC框架的Web.config文件包含对调用 Hostadapters.AspNetAdapter 质量工具。通用 QualityTools.ExecutionCommon 质量工具。资源 我自己没有添加这些条目,但从它们的名称猜测,我怀疑这些条目是由“添加单元测试”向导添加的 问题是,当引用这些程序集时,项目不会在我的临时服务器上运行,因为它找不到相关的DLL。它们的路径被硬编码到 Web.config: <httpModul
- Hostadapters.AspNetAdapter
- 质量工具。通用
- QualityTools.ExecutionCommon
- 质量工具。资源
<httpModules>
<add name="HostAdapter" type="Microsoft.VisualStudio.TestTools.HostAdapter.Web.HttpModule, Microsoft.VisualStudio.QualityTools.HostAdapters.ASPNETAdapter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</httpModules>
我认为这些组件与单元测试相关,对吗
当我试图删除其中一些条目时,服务器响应错误403“拒绝访问:禁止”。这可能是什么意思,我如何避免它
我可以简单地将引用的DLL文件上传到服务器的某个地方,但这似乎与直觉相反。我还有其他选择吗
编辑:我已经阅读了将配置拆分为单独部分的建议。这是一个很好的建议,但它并不能帮助我解决如何在服务器上运行任何配置这一直接问题。我将有单独的web.config文件用于暂存和实时 出于开发目的,经常需要更改许多设置,例如缓存长度、安全设置、URL等 根据我的经验,使用相同的配置会导致灾难-需要1名开发人员更改设置才能在本地工作,然后签入更新的文件,最终导致临时服务器损坏(或可能处于活动状态) 如果您使用构建,那么在构建过程中用web.live.config或web.staging.config替换web.config就很简单了
然后,您的问题就消失了。测试破坏您的配置并破坏您的部署的痛苦也发生在我身上。解决这个问题的正确方法是使用不同的配置文件进行调试、登台和发布 这解释了他们的工作,并指出了更多的信息 以下是用于删除有问题模块的转换:
<system.web>
<httpModules>
<add name="HostAdapter" xdt:Locator="Match(name)" xdt:Transform="Remove" />
</httpModules>
</system.web>
<system.webServer>
<modules>
<add name="HostAdapter" xdt:Locator="Match(name)" xdt:Transform="Remove"/>
</modules>
</system.webServer>
403错误的确切含义是什么?403错误的代码行上写着“无法验证:访问被拒绝”?你能提供堆栈跟踪吗?不,我不能。这是我得到的唯一信息。这甚至不是一条Asp.net错误消息,而是来自服务器本身。虽然这确实是一条很好的建议,但它不能帮助我解决我的问题,即:此条目的作用是什么,如何在不中断安装的情况下删除它?另外,如果我需要包含引用的DLL,那么什么是一个好的方法呢?我唯一剩下的问题是人们在构建服务器上做什么,通常,构建是发布的。安装VS?把这些DLL复制过来?
<system.web>
<httpModules>
<add name="HostAdapter" xdt:Locator="Match(name)" xdt:Transform="Remove" />
</httpModules>
</system.web>
<system.webServer>
<modules>
<add name="HostAdapter" xdt:Locator="Match(name)" xdt:Transform="Remove"/>
</modules>
</system.webServer>