昨天把做完的网站发布到虚拟主机中出现下边的错误耽误了半天才弄好
error CS2001: Source file ‘C:WINDOWSTEMPwctb6cvw.0.cs’ could not be found
error CS2008: No inputs specified
该站是asp的程序使用的.net urlrewrite做的伪静态,系统重装后一直报这样的错误,网上说是要给temp目录加上network services账户的权限,测试不能通过,实际需要加上当前iis站点使用的账户,或者增加users用户组对该目录的权限,才能正常运行,但是如果是虚拟主机用户就无法这样操作。
搜索一下发现有个人提供了另外一种解决方法:
首先在你的站点下建立一个目录名字随便取,我们取temp,
然后查询到temp的物理路径,自己写程序就可以查询出来了,我们的是(d:webrootxxxx.comwwwroot emp)
然后配置web.config文件,增加<compilation tempDirectory=”d:webrootxxxx.comwwwroot emp” />如果你的文件里已经有 这个节点compilation,你只需要为这个节点增加tempDirectory属性,保存即可
但是Web服务的序列化代码会被解析到系统环境的(TEMP也许是TMP)临时文件夹,因此你需要创建global.asax文件并且在Application_Start中添加如下代码:
Environment.SetEnvironmentVariable(“TEMP”,”d:webrootxxxx.comwwwroot emp”);
Environment.SetEnvironmentVariable(“TMP”,”d:webrootxxxx.comwwwroot emp”);
保存即可。
这个问题解决完后又出现一个问题,MVC4的路由在iis6上失效,就是只敲域名出现403没有权限浏览;需要指定默认页/Views/控制器名称/Index.cshtml