2012-11-08 41 views
2

我有一个旧的网站(asp.net 2.0),运行在服务器上的IIS7愉快地。VS2012/IIS7建设网站造成冲突

我想对代码进行更改,因此我已将所有源代码和适当的二进制文件复制到我的桌面(运行VS 2012)。

但是,无论我使用IIS或内置的网络服务器,我收到以下错误;

The type 'foo' in 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\livesite\169c38ce\cc32b84b\App_Web_qbel5zk4.28.cs' conflicts with the imported type 'foo' in 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\livesite\169c38ce\cc32b84b\App_Web_m030ztdd.dll'. Using the one in 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\livesite\169c38ce\cc32b84b\App_Web_qbel5zk4.28.cs'. 

此相同的代码工作得很好旧的XP的PC上运行的VS 2005年我假设,这是下降到.NET框架,在IIS应用程序池被设置为asp.net 2.0经典跑,但程序集正在框架的第4版中生成。

我已经尝试删除临时的asp.net文件,我仍然得到同样的问题。

在项目中只反映了每个类的一个实例。那么如何解决这个问题,以便在VS 2012中起作用,但仍然使用.net 2.0?

回答

2

也许这是一个动态编译的问题。默认情况下,web.config中“编译”元素的“批处理”属性为true。事情是这样的:

<compilation defaultLanguage="c#" debug="false" batch="true" targetFramework="4.0" /> 

随着一批=“真”,只要控制在一个目录下进行编译,该服务器在其目录编译所有控件(一切?)。

这可能会导致您网站中不同位置引用的元素发生冲突。

您应该尝试设置batch =“false”并删除临时文件。 如果仍然遇到问题,请尝试对相应的ascx/cs文件进行虚拟编辑和保存。

希望这会帮助

+0

为我工作。诚然,这是一天后,PC已经重新启动,但我把解决方案放在你身上:) – Matt