其实这主要是因为你使用了相对路径的问题,你使用绝对路径就 没事了,我这边使用mastpage,所以经常有这种事,所以所有的访问全部使用绝对路径,但你不能写死绝对路径,万一以后地址变了,你就完了,所以把绝对路径存到一个地方,所有访问使用绝对路径+文件地址就可以了。

解决方案 »

  1.   

    希望高人来帮一下忙,谢谢。mvc路由转向,如何通过实际访问地址的端口来,而不是iis部署地址的端口
      

  2.   

    这个问题,我是真实遇到过的。我当时处理的时候是在webconfig里设置一下端口匹配。逻辑就是当你在内网需要输出网址的时候,把webconfig里的端口器取出来,换掉你内网的端口号。
    简单说当你输出一个网址的时候你需要知道这个网址是前端还是后端输出,是前台需要还是后台需要,根据这个需要再做处理吧
      

  3.   


    关键,不改源码,外网根本没法用啊,如果没有简单的根本解决办法,只是去改跳转链接
    工作量太大,不可取。所以说你在部两个站点,指向同一个地方一个开80一个开8080不就行了。
    你应该没看懂我的问题。
    现在是外网访问端口出现问题,跟你内网部署几个站点没关系的啊。
    外网ip访问8080端口的时候,如果遇到mvc的路由跳转,8080全丢失,直接请求的是外网ip的80端口
    问题在于,目前做外网ip映射的前段路由器是没法动的,我只能动内网服务器,而你的办法是建两个
    站点,明显实现不了我需要的功能,你仔细考虑一下。
      

  4.   

    String port = Request.ServerVariables["SERVER_PORT"] == "80" ? "" : ":" + Request.ServerVariables["SERVER_PORT"];
    String virtualRoot = Url.Content("~/");
    destinationUrl = String.Format("http://{0}{1}{2}", Request.ServerVariables["SERVER_NAME"], port + virtualRoot, "/callback");
      

  5.   


    这样不行的,SERVER_PORT获取是内网的端口,获取不到外网的端口。
      

  6.   

     Request.ServerVariables["HTTP_HOST"]