别人在windows server2003服务器上面部署了一个mvc3开发的web网站,网站名字为TTS,开发时在Controllers文件夹下面添加了一个DefaultController.cs,里面有个index函数,然后在index函数里面添加了一个对应的视图view(index.cshtml),现在我想通过http://211.154.136.110/default/index或者http://211.154.136.110/TTS/default/index网页访问得到index.cshtml界面但是得到的都不是cshtml界面,只是一张图片,请问这个是什么原因?请问正确的访问url地址是什么?

解决方案 »

  1.   

    空间支持MVC吗?确认没有名为index或default的网页文件?
      

  2.   

    Windows Server 2003 需要配置下,因为默认不允许使用没有扩展名的 URL步骤:
    mvc部署1. 首先安装 Microsoft .net FrameWork 3.5 SP1安装包mvc部署2. 安装Microsoft MVC 2.0
    mvc部署3. 安装IIS 6.0
    mvc部署4. IIS 的配置(发布网站,创建虚拟目录)
    n ASP.NET 文档使用 ASP.NET v2.0.50727
    n 建立一个应用程序池 MvcPool ,使用默认值。
    n 文档 :默认文件 使用Default.aspx
    n 添加MVC的解析:主目录标签,点击【配置】,【映射】,【添加】, .mvc ,关联文件为C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,确认文件是否存在 取消勾选,点击确定。
    n 插入通配符应用程序映射,点击 【插入】,选择C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,确认文件是否存在 取消勾选,点击确定。
    n 在不重启电脑的情况下Web服务扩展:
    首先查看是否存在名称为 ASP.NET v2.0.50727,允许的服务扩展,如果不存在,那么,新建一个web服务扩展,关联文件为C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll, 并设置为【允许】。
    n 设置【主目录】,按照需要设置脚本资源访问、读取、写入、记录访问、索引资源 勾选项目。
    n 选择其他网站没有使用的端口
    n 设置网站的应用程序池为先前建立的 MvcPool
    n 启动MvcPool应用程序池
    n 启动网站.(上文提到的是 ASP.NET 2.0 也可能你要使用 .NET 4.0)
      

  3.   

    楼上说的是一种解决办法,但有几个问题:
    1.本质上这不是Windows Server 2003的问题,而是iis 6.0的问题
    2.这样做的话,程序也得改。routing要从{controller}/{action}/{id}改成{controller}.mvc/{action}/{id}, 而且程序里用到相关路径的地方也得改。
    3.iis 6.0里支持wildcard,也就是无扩展名的url,点击站点的Home Directory页里的Configuration按钮,在下面的wildcard application maps里添加C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll (2.0的话用
    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll), Verify that file exists选项必须取消勾选,确定就可以了
      

  4.   

    (1)IIS 的问题就是 Windows Server 2003 的问题,众所周知,只有 2003 搭配 IIS6。
    (2)你说的的确是这样,上面的文字是我贴来的,没有仔细看。是我的疏忽。